home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2006 April / Gamestar_83_2006-04_dvd.iso / Dema / lotrbfme2_demo.exe / INI.big / data_ini_object_goodfaction_units_elven_galadriel.ini < prev    next >
Text File  |  2006-01-31  |  15KB  |  505 lines

  1. ;------------------------------------------------------------------------------
  2. ;
  3. ;    Galadriel.ini
  4. ;
  5. ;------------------------------------------------------------------------------
  6.  
  7. ; Galadriel
  8. Object ElvenGaladriel
  9.     ; *** ART Parameters ***
  10.  
  11.     SelectPortrait = HPGaladriel
  12.     ButtonImage = HIGaladriel
  13.  
  14.     Draw = W3DScriptedModelDraw ModuleTag_DRAW
  15.  
  16.    StaticModelLODMode = yes ; Will append M or L to the skin name depending on GameLOD
  17.  
  18.       OkToChangeModelColor = Yes
  19.  
  20.  
  21.         DefaultModelConditionState
  22.             Model               = EUGaldrlGd_SKN
  23.             ParticleSysBone = B_PELVIS GaladAura FollowBone:YES
  24.             ParticleSysBone = B_PELVIS GaladAura02 FollowBone:YES
  25.         End
  26.         
  27.         ModelConditionState = USER_1                ; ring hero version.
  28.             Model               = EUGaldrl_SKN
  29.         End
  30.         
  31.         ; --- Idle Anims
  32.         
  33.         IdleAnimationState
  34.             Animation                = IDLB
  35.                 AnimationName        = EUGaldrl_SKL.EUGaldrl_IDLB
  36.                 AnimationMode        = ONCE
  37.                 AnimationPriority   = 20
  38.             End
  39.             Animation                = IDLC
  40.                 AnimationName        = EUGaldrl_SKL.EUGaldrl_IDLC
  41.                 AnimationMode        = ONCE
  42.                 AnimationPriority   = 1
  43.             End
  44.             Animation                = IDLD
  45.                 AnimationName        = EUGaldrl_SKL.EUGaldrl_IDLD
  46.                 AnimationMode        = ONCE
  47.                 AnimationPriority   = 1
  48.             End
  49.             StateName                = Idle
  50.             BeginScript
  51.                 Prev = CurDrawablePrevAnimationState()
  52.                 if Prev == "Selected" then CurDrawableSetTransitionAnimState("TRANS_Selected_To_Idle") end
  53.             EndScript
  54.  
  55.         End
  56.  
  57.         AnimationState        = STUNNED_FLAILING 
  58.             Flags               = RANDOMSTART
  59.             Animation           = EUGaldrl_FLYA
  60.                 AnimationName     = EUGaldrl_SKL.EUGaldrl_FLYA
  61.                 AnimationMode     = LOOP
  62.             End
  63.         End
  64.     
  65.     ; --- Dying anims
  66.         AnimationState        = DYING SPLATTED
  67.             Animation           = EUGaldrl_LNDA
  68.                 AnimationName     = RUEwnHrHrs_SKL.RUEwnHrHrs_LNDA
  69.                 AnimationMode     = ONCE
  70.             End
  71.         End
  72.         AnimationState        = DYING AFLAME
  73.             Animation = DieAflame
  74.                 AnimationName       = EUGaldrl_SKL.EUGaldrl_FLYA
  75.                 AnimationMode       = LOOP
  76.             End
  77.         End
  78.         AnimationState        = DYING
  79.             Animation           = EUGaldrl_DTHA
  80.                 AnimationName     = EUGaldrl_SKL.EUGaldrl_DTHA
  81.                 AnimationMode     = ONCE
  82.             End
  83.             ;ParticleSysBone = NONE GaladrielDying
  84.             ParticleSysBone = NONE UltraInitial01
  85.             ParticleSysBone = NONE UltraInitial02
  86.             ParticleSysBone = NONE UltraInitial03
  87.         End
  88.     
  89.     
  90.     ; --- Stunned anims
  91.         AnimationState        = STUNNED_STANDING_UP
  92.             Animation           = EUGaldrl_GTPA
  93.                 AnimationName     = EUGaldrl_SKL.EUGaldrl_GTPA
  94.                 AnimationMode     = ONCE
  95.                 AnimationSpeedFactorRange = 1.3 1.3
  96.             End
  97.         End
  98.         AnimationState        = STUNNED 
  99.             Animation           = EUGaldrl_LNDA
  100.                 AnimationName     = EUGaldrl_SKL.EUGaldrl_LNDA
  101.                 AnimationMode     = ONCE
  102.             End
  103.         End
  104.  
  105.     ; --- Moving anims
  106.         ; --- Moving Anims
  107.         AnimationState        = MOVING WANDER WEAPONSTATE_CLOSE_RANGE
  108.             StateName           = WithSword
  109.             Animation           = EUGaldrl_WLKA
  110.                 AnimationName     = EUGaldrl_SKL.EUGaldrl_RUNB
  111.                 AnimationMode     = LOOP
  112.             End
  113.         End
  114.         AnimationState        = MOVING WANDER
  115.             Animation           = EUGaldrl_WLKA
  116.                 AnimationName     = EUGaldrl_SKL.EUGaldrl_RUNB
  117.                 AnimationMode     = LOOP
  118.             End
  119.         End
  120.             
  121.         AnimationState        = MOVING FIRING_OR_PREATTACK_A
  122.             ShareAnimation        = Yes
  123.             Animation           = RunAndFire
  124.                 AnimationName       = EUGaldrl_SKL.EUGaldrl_ATKA
  125.                 AnimationMode       = LOOP
  126.             End
  127.             Flags               = RANDOMSTART  
  128.         End
  129.         
  130.         AnimationState            = SPECIAL_WEAPON_TWO                    ; TerribleFury
  131.             Animation
  132.                 AnimationName    = EUGaldrl_SKL.EUGaldrl_SPCB
  133.                 AnimationMode    = ONCE
  134.             End
  135.             FXEvent                = Frame:5 Name:FX_GaladrielTerribleFuryFearBlast
  136.         End
  137.         
  138.         AnimationState        = MOVING
  139.             Flags               = RANDOMSTART
  140.             Animation           = EUGaldrl_RUNB
  141.                 AnimationName     = EUGaldrl_SKL.EUGaldrl_RUNA
  142.                 AnimationMode     = LOOP
  143.             End
  144.         End
  145.         
  146.     ; --- Attacking Anims
  147.         AnimationState        = FIRING_OR_PREATTACK_A WEAPONSTATE_CLOSE_RANGE
  148.             StateName                = WithSword
  149.             Animation                = ATKA
  150.                 AnimationName        = EUGaldrl_SKL.EUGaldrl_ATKA
  151.                 AnimationMode        = ONCE
  152.                 UseWeaponTiming        = Yes
  153.             End
  154.             Animation                = ATKB
  155.                 AnimationName        = EUGaldrl_SKL.EUGaldrl_ATKB
  156.                 AnimationMode        = ONCE
  157.                 UseWeaponTiming        = Yes
  158.             End
  159.             Animation                = ATKB
  160.                 AnimationName        = EUGaldrl_SKL.EUGaldrl_ATKC
  161.                 AnimationMode        = ONCE
  162.                 UseWeaponTiming        = Yes
  163.             End
  164.         End
  165.  
  166.         AnimationState        = FIRING_OR_PREATTACK_A
  167.             Animation                = ATKA
  168.                 AnimationName        = EUGaldrl_SKL.EUGaldrl_ATKA
  169.                 AnimationMode        = ONCE
  170.                 UseWeaponTiming        = Yes
  171.             End
  172.             Animation                = ATKB
  173.                 AnimationName        = EUGaldrl_SKL.EUGaldrl_ATKB
  174.                 AnimationMode        = ONCE
  175.                 UseWeaponTiming        = Yes
  176.             End
  177.             Animation                = ATKB
  178.                 AnimationName        = EUGaldrl_SKL.EUGaldrl_ATKC
  179.                 AnimationMode        = ONCE
  180.                 UseWeaponTiming        = Yes
  181.             End
  182.         End
  183.  
  184.         AnimationState        = ATTACKING
  185.             Animation           = ALERT_1
  186.                 AnimationName     = EUGaldrl_SKL.EUGaldrl_IDLA
  187.                 AnimationMode     = LOOP; ONCE
  188.             End
  189.         End
  190.  
  191.         AnimationState        = RAISING_FLAG
  192.             Animation
  193.                 AnimationName     = EUGaldrl_SKL.EUGaldrl_CHRA
  194.                 AnimationMode     = LOOP
  195.             End
  196.         End
  197.         
  198.         AnimationState                =    SELECTED
  199.             StateName                =    Selected
  200.             SimilarRestart            =   Yes            
  201.             Animation                =    ATNB
  202.                 AnimationName        =    EUGaldrl_SKL.EUGaldrl_ATNB
  203.                 AnimationMode        =    LOOP
  204.             End
  205.             BeginScript
  206.                 Prev = CurDrawablePrevAnimationState()
  207.                 if Prev == "Idle" then CurDrawableSetTransitionAnimState("TRANS_Idle_to_Selected") end
  208.             EndScript
  209.         End
  210.  
  211.         AnimationState = LEVELED
  212.             Animation = Hit_Level_1_a
  213.                 AnimationName = EUGaldrl_SKL.EUGaldrl_LVLA
  214.                 AnimationMode = ONCE
  215.             End
  216.         End        
  217.  
  218.     ; --- Click and Hit Reactions
  219.         AnimationState = HIT_REACTION HIT_LEVEL_1
  220.             Animation = Hit_Level_1_a
  221.                 AnimationName = EUGaldrl_SKL.EUGaldrl_HITA
  222.                 AnimationMode = ONCE
  223.             End
  224.         End        
  225.  
  226.  
  227.         
  228. ;;====== CELEBRATING        
  229.  
  230.         AnimationState                    = EMOTION_CELEBRATING
  231.             StateName                    = STATE_Emotion_Sword
  232.             Animation                    = Sword
  233.                 AnimationName            = EUGaldrl_SKL.EUGaldrl_CHRA
  234.                 AnimationMode            = ONCE
  235.             End
  236.             Flags                        = MAINTAIN_FRAME_ACROSS_STATES RESTART_ANIM_WHEN_COMPLETE
  237.         End
  238.  
  239.  
  240. ;;====== TAUNTING
  241.  
  242.         AnimationState                    = EMOTION_TAUNTING
  243.             StateName                    = STATE_Emotion_Sword
  244.             Animation                    = Sword
  245.                 AnimationName            = EUGaldrl_SKL.EUGaldrl_CHRA
  246.                 AnimationMode            = ONCE
  247.             End
  248.             Flags                        = RESTART_ANIM_WHEN_COMPLETE ;MAINTAIN_FRAME_ACROSS_STATES
  249.         End
  250.  
  251.                         
  252.     ; --- Selected Anims and Transitions
  253.         TransitionState                    =    TRANS_Idle_to_Selected
  254.             Animation                    =    ATND
  255.                 AnimationName            =    EUGaldrl_SKL.EUGaldrl_ATNA
  256.                 AnimationMode            =    ONCE
  257.             End
  258.         End
  259.         
  260.         TransitionState                    =    TRANS_Selected_To_Idle
  261.             Animation                    =    ATNE
  262.                 AnimationName            =    EUGaldrl_SKL.EUGaldrl_ATNC
  263.                 AnimationMode            =    ONCE
  264.             End
  265.         End
  266.         
  267.  
  268.         
  269.  
  270.  
  271.     End
  272.  
  273.     ; ***DESIGN parameters ***
  274.     Side = Elves
  275.     EditorSorting = UNIT
  276.     ThreatLevel = GALADRIEL_THREAT_LEVEL
  277.     ThingClass = CHARACTER_UNIT
  278.  
  279.     TransportSlotCount = TRANSPORTSLOTCOUNT_HERO
  280.     WeaponSet
  281.         Conditions = None 
  282.         Weapon = PRIMARY    GaladrielSword ; a magical sword
  283.         AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
  284.     End
  285.     ArmorSet
  286.         Conditions      = None
  287.         Armor           = SauronArmor
  288.         DamageFX        = NormalDamageFX
  289.     End
  290.     VisionRange = VISION_HERO_STANDARD
  291.     ShroudClearingRange = SHROUD_CLEAR_HERO
  292.     BountyValue = ELVEN_GALADRIEL_BOUNTY_VALUE
  293.     RecruitText                     = CONTROLBAR:GaladrielRecruit
  294.     ReviveText                    = CONTROLBAR:GaladrielRevive
  295.     Hotkey                        = CONTROLBAR:GaladrielHotkey
  296.     DisplayName = OBJECT:ElvenGaladriel
  297. ;    CrushableLevel = 0  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
  298.     CrusherLevel        = 0    
  299.     CommandSet = GaladrielCommandSet
  300.     CommandPoints = 0
  301.  
  302.  
  303.     ; *** AUDIO Parameters ***;
  304.  
  305.     ;VoiceAmbushed                                 = YeomanArcherVoiceAmbushed
  306.     VoiceAttack                                 = GaladrielVoiceAttack
  307.     VoiceAttackAir                                = GaladrielVoiceAttack
  308.     VoiceAttackCharge                             = GaladrielVoiceAttack
  309.     VoiceAttackMachine                             = GaladrielVoiceAttack
  310.     VoiceAttackStructure                         = GaladrielVoiceAttackBuilding
  311.     VoiceCreated                                = GaladrielVoiceSalute
  312.     VoiceFullyCreated                             = GaladrielVoiceSalute
  313.     VoiceFear                                    = GaladrielVoiceHelpMe
  314.     VoiceGuard                                    = GaladrielVoiceMove
  315.     VoiceMove                                     = GaladrielVoiceMove
  316.     VoiceMoveToCamp                             = GaladrielVoiceMove
  317.     VoicePriority                                = 98
  318.     VoiceSelect                                 = GaladrielVoiceSelect
  319.     VoiceSelectBattle                              = GaladrielVoiceSelectBattle
  320.  
  321.     SoundImpact                                 = ImpactHorse
  322.     
  323.     UnitSpecificSounds
  324.         VoiceEnterUnitElvenTransportShip        = GaladrielVoiceMove
  325.         VoiceGarrison                            = GaladrielVoiceMove
  326.         VoiceInitiateCaptureBuilding            = GaladrielVoiceCaptureBuilding        ; From SpecialPower SpecialAbilityCaptureBuilding
  327.     End
  328.  
  329.     ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
  330.         MaxUpdateRangeCap = 800
  331.         AnimationSound = Sound:BodyFallGenericNoArmor    Animation:EUGALDRL_SKL.EUGALDRL_LNDA    Frames:6
  332.         AnimationSound = Sound:BodyFallGenericNoArmor    Animation:EUGALDRL_SKL.EUGALDRL_DTHA    Frames:15    ;fall to knees first
  333.     End
  334.  
  335.     #include "..\..\..\includes\StandardUnitEvaEvents.inc"
  336.     EvaEventDieOwner = GaladrielDie            ;Eva event to trigger on unit's death. NOTICE THAT this is only for permanent deaths
  337.  
  338.     ; Warn the player when the enemy gets Galadriel. Override the normal sighting event from StandardUnitEvaEvents.inc
  339.     EvaEnemyObjectSightedEvent = EnemyGaladrielSeen
  340.  
  341.     ClientUpdate = EvaAnnounceClientCreate ModuleTag_CreateAnnounce
  342.         AnnouncementEventEnemy = EnemyGaladrielSeen
  343.         AnnouncementEventAlly = None
  344.         AnnouncementEventOwner = None
  345.         
  346.         OnlyIfVisible = Yes                        ; Don't announce if hidden in the shroud
  347.         CountAsFirstSightedAnnoucement = Yes    ; Don't re-annouce if going into shroud & back
  348.         UseObjectsPosition = No                    ; Play from central Fortress, not at Galadriel's position
  349.         CreateFakeRadarEvent = Yes                ; Allow player to jump to Galadriel after hearing annoucement
  350.     End
  351.  
  352.     ; *** ENGINEERING Parameters ***
  353.  
  354.     RadarPriority = UNIT
  355.     KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS INFANTRY PATH_THROUGH_EACH_OTHER SCORE HERO HEAVY_MELEE_HITTER
  356.     BuildCost = GALADRIEL_BUILDCOST
  357.     BuildTime = GALADRIEL_BUILDTIME
  358.     ShockwaveResistance = SHOCKWAVE_RESISTANCE_ALWAYS
  359.  
  360.     ; Note - Not a RespawnBody, as we do not want to put them back in the respawnable hero list when dead.
  361.     Body = ActiveBody ModuleTag_Body
  362.         MaxHealth                     = GALADRIEL_HEALTH
  363.     End
  364.     
  365.     Behavior = AnnounceBirthAndDeathBehavior ModuleTag_AnnounceBirthAndDeathBehavior
  366.     End
  367.  
  368.     #include "..\..\..\includes\DefaultInvisibilityUpdate.inc"
  369.  
  370.     Behavior = StancesBehavior ModuleTag_StancesBehavior
  371.         StanceTemplate = Hero
  372.     End
  373.  
  374.     Behavior = AIUpdateInterface ModuleTag_03
  375.         AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
  376.         MoodAttackCheckRate        = 500
  377.         AILuaEventsList            = GaladrielFunctions
  378.     End
  379.  
  380.     LocomotorSet
  381.         Locomotor = HeroHumanLocomotor
  382.         Condition = SET_NORMAL 
  383.         Speed     = NORMAL_ELVEN_INFANTRY_MEMBER_SPEED
  384.     End
  385.     
  386.     Behavior = PhysicsBehavior ModuleTag_04
  387.         GravityMult = 1.0
  388.     End
  389.     
  390.     Behavior = SlowDeathBehavior ModuleTag_05
  391.         DeathTypes            = ALL 
  392.         SinkDelay            = 5000
  393.         SinkRate            = 10.0     ; in Dist/Sec - fast!
  394.         DestructionDelay    = 1800
  395.         Sound                = INITIAL GaladrielVoiceDie
  396.         Weapon                = FINAL RingHeroDeathShockwave
  397.     End
  398.     
  399.     Behavior = SquishCollide ModuleTag_06
  400.         ;nothing
  401.     End
  402.     
  403.     ; Tie into LargeGroupAudio system
  404.     Behavior = LargeGroupAudioUpdate ModuleTag_LGAU
  405.         Key = Hero
  406.     End
  407.     
  408.     Behavior = HitReactionBehavior HitReactionBehaviorModuleTag
  409.         HitReactionLifeTimer1 = 7 ; level 1 (light  damage)  hit reaction animations in frames (5 per sec)
  410.         HitReactionLifeTimer2 = 15 ; level 2 (medium damage)  hit reaction animations in frames (5 per sec)
  411.         HitReactionLifeTimer3 = 10 ; level 3 (heavy  damage)  hit reaction animations in frames (5 per sec)
  412.  
  413.         HitReactionThreshold1 = 0.0   ; level 1 (light  damage) threshold trigger
  414.         HitReactionThreshold2 = 25.0  ; level 2 (medium damage) threshold trigger
  415.         HitReactionThreshold3 = 50.0  ; level 3 (heavy  damage) threshold trigger
  416.     End
  417.     
  418.     Behavior = OCLSpecialPower    ModuleTag_OCLSpawnTornado
  419.         SpecialPowerTemplate    = SpecialPowerSpawnTornado
  420.         OCL                        = SUPERWEAPON_SpawnTornado
  421.         CreateLocation            = CREATE_AT_LOCATION
  422.         AvailableAtStart        = Yes
  423.     End
  424.  
  425.     ;///////////////////
  426.     ; AISpecialPowers
  427.     ;///////////////////
  428.  
  429.     Behavior = AISpecialPowerUpdate SpawnTornadoAI
  430.         CommandButtonName = Command_SpecialPowerSpawnTornado
  431.         SpecialPowerAIType = AI_SPECIAL_POWER_TARGETAOE_SUMMON
  432.         SpecialPowerRadius = 30.0
  433.     End
  434.     
  435.     Behavior = AISpecialPowerUpdate TerribleFuryAI
  436.         CommandButtonName = Command_SpecialAbilityTerribleFury
  437.         SpecialPowerAIType = AI_SPECIAL_POWER_BASIC_SELF_BUFF
  438.     End
  439.  
  440.     Geometry            = CYLINDER
  441.     GeometryMajorRadius    = 8.0
  442.     GeometryHeight        = 19.2
  443.     GeometryIsSmall        = Yes
  444.     
  445.     Shadow                = SHADOW_DECAL
  446.     ShadowSizeX            = 12
  447.     ShadowSizeY            = 12
  448.     ShadowTexture        = ShadowI
  449. End
  450.  
  451. ChildObject ElvenGaladriel_RingHero ElvenGaladriel
  452.  
  453.     ; Player no longer has the ring hero upgrade when the hero is created.
  454.     Behavior = RemoveUpgradeUpgrade ModuleTag_RemoveRing
  455.         TriggeredBy                    = Upgrade_MenFaction Upgrade_ElfFaction Upgrade_DwarfFaction
  456.         UpgradeToRemove                = Upgrade_RingHero Upgrade_FortressRingHero
  457.         RemoveFromAllPlayerObjects    = Yes
  458.         SuppressEvaEventForRemoval    = Yes ; this is to avoid the Eva event about 'Gollum stole our ring'
  459.                                          ; when we are actually losing the upgrade because we built the ring heroine
  460.     End
  461.  
  462.     ; Spawn a dropped ring object.
  463.     Behavior = CreateObjectDie ModuleTag_DropTheRing
  464.         CreationList = OCL_TheOneRing
  465.     End
  466.  
  467.     Behavior = ExperienceLevelCreate ModuleTag_LevelBonus
  468.         LevelToGrant    = 10
  469.         MPOnly            = No
  470.     End
  471.  
  472.     ;------- TERRIBLE FURY -------------------------------------------------------------------------------------
  473.     Behavior = SpecialPowerModule ModuleTag_GaladrielTerribleFury
  474.         SpecialPowerTemplate        = SpecialAbilityScreech
  475.         UpdateModuleStartsAttack    = Yes
  476.         ;InitiateSound = GaladrielTerribleFurySFX    ;this didn't work
  477.     End
  478.     Behavior = SpecialAbilityUpdate ModuleTag_GaladrielTerribleFuryUpdate  
  479.         SpecialPowerTemplate        = SpecialAbilityScreech
  480.         UnpackTime                    = 1
  481.         AwardXPForTriggering        = 0        
  482.         TriggerSound                = GaladrielVoiceTerribleFury
  483.         EffectRange                    = 200
  484.         UnpackTime                    = 100
  485.         PreparationTime                = 1
  486.         PackTime                    = 3000
  487.         CustomAnimAndDuration        = AnimState:SPECIAL_WEAPON_TWO AnimTime:3000
  488.     End    
  489.  
  490.  
  491.     Behavior = ModelConditionUpgrade ModulTag_RingHeroMC
  492.         TriggeredBy                    = Upgrade_ObjectLevel1
  493.         AddConditionFlags            = USER_1
  494.     End
  495.  
  496.     Behavior = AutoHealBehavior ModuleTag_AutoHeal
  497.         StartsActive            = Yes
  498.         HealingAmount            = HERO_HEAL_AMOUNT
  499.         HealingDelay            = 1000
  500.         StartHealingDelay        = HERO_HEAL_DELAY
  501.         HealOnlyIfNotInCombat    = Yes
  502.     End
  503.         
  504. End
  505.