here are the codes:
imrahil.ini
;------------------------------------------------------------------------------ ; ; Theoden.ini ; ; RotWK ;------------------------------------------------------------------------------ Object PrinceImrahil ; *** ART Parameters *** ; SelectPortrait for Heros is portrait behind skill buttons. HP = HeroPortrait. SelectPortrait = KUKnightDolAmPortrait ; ButtonImage for Heros is button image on Hero Select UI to select hero. HI = HeroIcon or HeroImage. ButtonImage = WOR_KnightDolAmroth Draw = W3DHordeModelDraw ModuleTag_01 OkToChangeModelColor = No StaticModelLODMode = Yes ; specify options for static LODs LodOptions = LOW AllowMultipleModels = ALLOW_MULTIPLE_MODELS_LOW MaxRandomTextures = MAX_RANDOM_TEXTURES_LOW MaxRandomAnimations = MAX_RANDOM_ANIMATIONS_LOW MaxAnimFrameDelta = MAX_ANIM_FRAME_DELTA_LOW End LodOptions = MEDIUM AllowMultipleModels = ALLOW_MULTIPLE_MODELS_MED MaxRandomTextures = MAX_RANDOM_TEXTURES_MED MaxRandomAnimations = MAX_RANDOM_ANIMATIONS_MED MaxAnimFrameDelta = MAX_ANIM_FRAME_DELTA_MED End LodOptions = HIGH AllowMultipleModels = ALLOW_MULTIPLE_MODELS_HIGH MaxRandomTextures = MAX_RANDOM_TEXTURES_HIGH MaxRandomAnimations = MAX_RANDOM_ANIMATIONS_HIGH MaxAnimFrameDelta = MAX_ANIM_FRAME_DELTA_HIGH End WadingParticleSys = WaterRipplesTrail; used when the unit is wading in shallow water. ;-------------------------------------------------- ; new method ; RandomTexture = RUHorse01.tga 0 RUHorse03.tga ; RandomTexture = RUHorse02.tga 0 RUHorse03.tga ; RandomTexture = RUHorse03.tga 0 RUHorse03.tga ; RandomTexture = RUHorse04.tga 0 RUHorse03.tga ;-------------------------------------------------- ;Random Rivendell Riders textures - new method ; RandomTexture = RURohrm01.tga 0 RURohrm02.tga ; RandomTexture = RURohrm02.tga 0 RURohrm02.tga ; RandomTexture = RURohrm03.tga 0 RURohrm02.tga ; RandomTexture = RURohrm04.tga 0 RURohrm02.tga ParticlesAttachedToAnimatedBones = yes ; Spear. DefaultModelConditionState Model = GUDolAmrth_SKN End IdleAnimationState StateName = Idle Animation = IdleB AnimationName = RURohrm_SKL.RURohrm_IDLB AnimationMode = ONCE AnimationBlendTime = 15 End BeginScript Prev = CurDrawablePrevAnimationState() if Prev == "State_Selected" then CurDrawableSetTransitionAnimState("TRANS_Selected_To_Idle") end EndScript End AnimationState = PASSENGER Animation = grabbed AnimationName = RURohrm_SKL.RURohrm_GBDA AnimationMode = LOOP End End ; --- stunned anims AnimationState = FREEFALL Animation = free fall AnimationName = RURohrm_SKL.RURohrm_FLYB AnimationMode = LOOP AnimationBlendTime = 10 End End AnimationState = STUNNED_FLAILING Animation = JustDie AnimationName = RURohrm_SKL.RURohrm_FLYC AnimationMode = LOOP End Flags = RANDOMSTART End AnimationState = DYING BURNINGDEATH Animation AnimationName = RURohrm_SKL.RURohrm_DIEA AnimationMode = ONCE AnimationBlendTime = 10 End End ; This is the no-spawn-horse type of death AnimationState = DYING DEATH_1 SPLATTED Animation = splatted AnimationName = RURohrm_SKL.RURohrm_LNDA AnimationMode = ONCE AnimationBlendTime = 2 End FXEvent = Frame:2 Name:FX_SplatDust End AnimationState = DYING DEATH_1 Animation = JustDie AnimationName = RURohrm_SKL.RURohrm_DIEA AnimationMode = ONCE End End AnimationState = DYING DEATH_2 Animation = FadeOut AnimationName = RURohrm_SKL.RURohrm_IDLB AnimationMode = ONCE End End AnimationState = BURNINGDEATH Animation AnimationName = RURohrm_SKL.RURohrm_MFDA AnimationMode = LOOP Distance = 90 End End AnimationState = STUNNED_STANDING_UP Animation = StandUp AnimationName = RURohrm_SKL.RURohrm_GTPA AnimationMode = ONCE AnimationSpeedFactorRange = 1.5 1.5 End End AnimationState = STUNNED Animation = Land AnimationName = RURohrm_SKL.RURohrm_LNDA AnimationMode = ONCE End End AnimationState = PARALYZED Animation AnimationName = RURohrm_SKL.RURohrm_IDLB AnimationMode = LOOP End End AnimationState = MOVING FIRING_OR_PREATTACK_A ShareAnimation = Yes Animation = TrotAndFire AnimationName = RURohrm_SKL.RURohrm_ATRB AnimationMode = LOOP Distance = 70; 35 End Flags = RANDOMSTART End ;;======= BACKING UP AnimationState = MOVING BACKING_UP Animation = BACKING UP AnimationName = RURohrm_SKL.RURohrm_BAKA AnimationMode = LOOP End End AnimationState = TURN_LEFT_HIGH_SPEED Animation = TurnLeft AnimationName = RURohrm_SKL.RURohrm_TNL1 AnimationMode = LOOP AnimationBlendTime = 20 End End AnimationState = TURN_RIGHT_HIGH_SPEED Animation = TurnRight AnimationName = RURohrm_SKL.RURohrm_TNR1 AnimationMode = LOOP AnimationBlendTime = 20 End End AnimationState = MOVING WANDER Animation = WLKA AnimationName = RURohrm_SKL.RURohrm_WLKA AnimationMode = LOOP End End AnimationState = MOVING TURN_LEFT Animation = TurnLeft AnimationName = RURohrm_SKL.RURohrm_TRNL AnimationMode = LOOP End End AnimationState = MOVING TURN_RIGHT Animation = TurnRight AnimationName = RURohrm_SKL.RURohrm_TRNR AnimationMode = LOOP End End AnimationState = MOVING ENGAGED Animation = Moving_Engaged AnimationName = RURohrm_SKL.RURohrm_RUNC AnimationMode = LOOP End Flags = RANDOMSTART End ; AnimationState = MOVING WALKING ; Animation = Walk1 ; AnimationName = RURohrm_SKL.RURohrm_WLKB ; AnimationMode = LOOP ; Distance = 25 ; End ; End AnimationState = MOVING ACCELERATE Animation = Accelerate AnimationName = RURohrm_SKL.RURohrm_ACCL AnimationMode = ONCE; was LOOP End End AnimationState = DECELERATE Animation = Decelerate AnimationName = RURohrm_SKL.RURohrm_DECL AnimationMode = ONCE AnimationSpeedFactorRange = 0.55 0.55 End End AnimationState = MOVING Animation = RunA AnimationName = RURohrm_SKL.RURohrm_RUNA AnimationMode = LOOP Distance = 40 End Flags = RANDOMSTART End ;--------------------------------------------------------------------------------------------------------- ; Standard attack with spear. AnimationState = FIRING_OR_PREATTACK_A Animation = AttackA1 AnimationName = RURohrm_SKL.RURohrm_ATKA AnimationMode = ONCE End End ;--------------------------------------------------------------------------------------------------------- ;;--------------------- EMOTIONS --------------------------------------------------------------------------------- ;;======= CELEBRATING AnimationState = EMOTION_CELEBRATING Animation = CheerA AnimationName = RURohrm_SKL.RURohrm_CHRA AnimationMode = ONCE End Animation = CheerB AnimationName = RURohrm_SKL.RURohrm_CHRB AnimationMode = ONCE End Animation = CheerC AnimationName = RURohrm_SKL.RURohrm_CHRC AnimationMode = ONCE End Animation = CheerD AnimationName = RURohrm_SKL.RURohrm_CHRD AnimationMode = ONCE End Animation = Salute AnimationName = RURohrm_SKL.RURohrm_SLTA AnimationMode = ONCE End Flags = RANDOMSTART RESTART_ANIM_WHEN_COMPLETE End ;;======= TAUNTING AnimationState = EMOTION_TAUNTING Animation = Taunting AnimationName = RURohrm_SKL.RURohrm_TNTA AnimationMode = ONCE End Animation = Taunting2 AnimationName = RURohrm_SKL.RURohrm_TNTB AnimationMode = ONCE End Flags = RANDOMSTART RESTART_ANIM_WHEN_COMPLETE End ;;======= POINTING AnimationState = EMOTION_POINTING Animation = Pointing1 AnimationName = RURohrm_SKL.RURohrm_PNTA AnimationMode = LOOP End End ;;======== ALERT AnimationState = EMOTION_ALERT Animation = IDLA AnimationName = RURohrm_SKL.RURohrm_IDLA AnimationMode = LOOP End End AnimationState = RAISING_FLAG Animation = CheerA AnimationName = RURohrm_SKL.RURohrm_CHRA AnimationMode = ONCE AnimationSpeedFactorRange = 0.9 1.1 End Animation = CheerB AnimationName = RURohrm_SKL.RURohrm_CHRB AnimationMode = ONCE AnimationSpeedFactorRange = 0.9 1.1 End Animation = CheerC AnimationName = RURohrm_SKL.RURohrm_CHRC AnimationMode = ONCE AnimationSpeedFactorRange = 0.9 1.1 End Animation = CheerD AnimationName = RURohrm_SKL.RURohrm_CHRD AnimationMode = ONCE AnimationSpeedFactorRange = 0.9 1.1 End Animation = Salute AnimationName = RURohrm_SKL.RURohrm_SLTA AnimationMode = ONCE AnimationSpeedFactorRange = 0.9 1.1 End Flags = RANDOMSTART RESTART_ANIM_WHEN_COMPLETE End ;;-------------------- SELECTED --------------------------------------------------------------- AnimationState = SELECTED StateName = State_Selected SimilarRestart = Yes Animation = AtAttention AnimationName = RURohrm_SKL.RURohrm_IDLA AnimationMode = LOOP End BeginScript Prev = CurDrawablePrevAnimationState() if Prev == "Idle" then CurDrawableSetTransitionAnimState("TRANS_Idle_To_Selected") end EndScript End TransitionState = TRANS_Idle_to_Selected Animation = ATNA AnimationName = RURohrm_SKL.RURohrm_ATNA AnimationMode = ONCE AnimationSpeedFactorRange = 0.6 1.0 End End TransitionState = TRANS_Selected_to_Idle Animation = ATNC AnimationName = RURohrm_SKL.RURohrm_ATNA AnimationMode = ONCE_BACKWARDS AnimationSpeedFactorRange = 0.6 1.0 End Flags = START_FRAME_LAST End End Draw = W3DScriptedModelDraw DustEffects DefaultModelConditionState Model = None End IdleAnimationState End AnimationState = MOVING WADING ParticleSysBone = None FootstepSlash End AnimationState = MOVING ACCELERATE ParticleSysBone = None GenericSiegeTrailDust End AnimationState = MOVING DECELERATE ParticleSysBone = None GenericSiegeTrailDust End AnimationState = MOVING End End ; NOTE, PLEASE: If you are changing this unit in any way, you should consider changing ; GondorCavalryRiderless in FactionSubObject.ini #include "..\..\..\includes\StunDrawModuleMedium.inc" ; ***DESIGN parameters *** Side = Men EditorSorting = UNIT ThreatLevel = ARAGORN_THREAT_LEVEL ThingClass = CHARACTER_UNIT TransportSlotCount = TRANSPORTSLOTCOUNT_HERO ;//DisplayMeleeDamage = PrinceImrahil_DAMAGE HeroSortOrder = 20 BuildCost = PRINCEIMRAHIL_BUILDCOST BuildTime = PRINCEIMRAHIL_BUILDTIME MaxSimultaneousOfType = 1 ShockwaveResistance = SHOCKWAVE_RESISTANCE_STRONG WeaponSet Conditions = None Weapon = PRIMARY GondorPrinceImrahilSword End ArmorSet Conditions = None Armor = HeroArmor DamageFX = NormalDamageFX End VisionRange = VISION_HERO_STANDARD ShroudClearingRange = SHROUD_CLEAR_HERO MaxVisionBonusPercent = 300% VisionBonusTestRadius = 200 VisionBonusPercentPerFoot = 1.0% BountyValue = GONDOR_ARAGORN_BOUNTY_VALUE DisplayName = OBJECT:GondorPrinceImrahil RecruitText = CONTROLBAR:GondorPrinceImrahilRecruit ReviveText = CONTROLBAR:GondorPrinceImrahilRevive CommandSet = GondorPrinceImrahilCommandSet CommandPoints = 50 ;SelectPortrait = SP_Gondor_Horseman DisplayName = OBJECT:GondorPrinceImrahil CrushableLevel = 1; What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CrusherLevel = 2 CrushWeapon = DolAmrothLancerCrush MinCrushVelocityPercent = 40; Has to be moving at at least this % of full speed. CrushDecelerationPercent = 20; Lose this % of max velocity when crushing. CrushKnockback = 10; CrushZFactor = 1.0; ; *** AUDIO Parameters ***; VoiceAttack = KnightsDolAmrothVoiceAttack VoiceAttackCharge = KnightsDolAmrothVoiceAttackCharge VoiceAttackStructure = KnightsDolAmrothVoiceAttackBuilding VoiceAttackMachine = KnightsDolAmrothVoiceAttack VoiceCreated = KnightsDolAmrothVoiceSalute VoiceFullyCreated = KnightsDolAmrothVoiceSalute VoiceGuard = KnightsDolAmrothVoiceMove VoiceMove = KnightsDolAmrothVoiceMove VoiceMoveToCamp = KnightsDolAmrothVoiceMoveCamp VoiceMoveWhileAttacking = KnightsDolAmrothVoiceDisengage VoicePriority = 60 VoiceRetreatToCastle = KnightsDolAmrothVoiceRetreat VoiceSelect = KnightsDolAmrothVoiceSelect VoiceSelectBattle = KnightsDolAmrothVoiceSelectBattle SoundCrushing = RohirrimCrushing;Sound made when crushing another unit underhoof SoundImpact = ImpactHorse SoundMoveStart = GondorHorseMoveStart VoiceEnterStateAttack = KnightsDolAmrothVoiceAttack VoiceEnterStateAttackCharge = KnightsDolAmrothVoiceAttackCharge VoiceEnterStateAttackStructure = KnightsDolAmrothVoiceAttackBuilding VoiceEnterStateAttackMachine = KnightsDolAmrothVoiceAttackBuilding VoiceEnterStateMove = KnightsDolAmrothVoiceMove VoiceEnterStateMoveToCamp = KnightsDolAmrothVoiceMoveCamp VoiceEnterStateMoveWhileAttacking = KnightsDolAmrothVoiceDisengage VoiceEnterStateRetreatToCastle = KnightsDolAmrothVoiceRetreat UnitSpecificSounds VoiceEnterUnitElvenTransportShip = KnightsDolAmrothVoiceMoveShip VoiceGarrison = KnightsDolAmrothVoiceMove VoiceInitiateCaptureBuilding = KnightsDolAmrothVoiceCaptureBuilding End CrowdResponseKey = GoodMen Behavior = LargeGroupAudioUpdate ModuleTag_LGAU;Tie into LargeGroupAudio system Key = Humanoid_Male Man Man_Male Unit Cavalry Knight End ClientBehavior = ModelConditionAudioLoopClientBehavior ModuleTag_foo ModelCondition = Required:RAISING_FLAG Excluded:DYING ENGAGED Sound:EmotionMenGoodCompilationBFME1and2VoxTauntSinglesLoop End #include "..\..\..\Includes\StandardUnitEvaEvents.inc" ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior MaxUpdateRangeCap = 800 AnimationSound = Sound: HorseMoveFootstepsLoose Animation: RURohrm_SKL.RURohrm_ACCL Frames: 8 30 AnimationSound = Sound: HorseMoveFootstepsLoose Animation: RURohrm_SKL.RURohrm_RUNA Frames: 0 AnimationSound = Sound: HorseMoveFootstepsLoose Animation: RURohrm_SKL.RURohrm_RUNB Frames: 0 AnimationSound = Sound: HorseMoveFootstepsLoose Animation: RURohrm_SKL.RURohrm_RUNC Frames: 0 AnimationSound = Sound: HorseMoveFootstepsLoose Animation: RURohrm_SKL.RURohrm_TNL1 Frames: 0 AnimationSound = Sound: HorseMoveFootstepsLoose Animation: RURohrm_SKL.RURohrm_TNR1 Frames: 0 AnimationSound = Sound: HorseMoveFootstepsLoose Animation: RURohrm_SKL.RURohrm_TRNL Frames: 0 AnimationSound = Sound: HorseMoveFootstepsLoose Animation: RURohrm_SKL.RURohrm_TRNR Frames: 0 AnimationSound = Sound: HorseWhinny Animation: RURohrm_SKL.RURohrm_CHRB Frames: 8 AnimationSound = Sound: HorseWhinny Animation: RURohrm_SKL.RURohrm_CHRC Frames: 15 AnimationSound = Sound: HorseWhinny Animation: RURohrm_SKL.RURohrm_DIEA Frames: 0 ;AnimationSound = Sound: HorseWhinny Animation: RURohrm_SKL.RURohrm_DIEB Frames: 0 AnimationSound = Sound: BodyFallGeneric1 Animation: RURohrm_SKL.RURohrm_DIEA Frames: 10 46 ;AnimationSound = Sound: BodyFallGeneric1 Animation: RURohrm_SKL.RURohrm_DIEB Frames: 11 AnimationSound = Sound: BodyFallGeneric1 Animation: RURohrm_SKL.RURohrm_LNDA Frames: 3 11 ;AnimationSound = Sound: TauntHitShieldPitchShifted Animation: RURohrm_SKL.RURohrm_TNTB Frames: 12 29 ;need means for filtering for upgraded horse shields! End ; *** ENGINEERING Parameters ***-------------------------------------------------------------------------------- RadarPriority = UNIT KindOf = HERO PRELOAD SELECTABLE CAN_CAST_REFLECTIONS INFANTRY ATTACK_NEEDS_LINE_OF_SIGHT PATH_THROUGH_EACH_OTHER SCORE ARMY_SUMMARY HEAVY_MELEE_HITTER PathfindDiameter = 40.0 CamouflageDetectionMultiplier = 2.0 Body = RespawnBody ModuleTag_RespawnBody MaxHealth = PRINCEIMRAHIL_HEALTH PermanentlyKilledByFilter = NONE;Who kills me permanently? DodgePercent = HERO_DODGE_PERCENT End Behavior = RespawnUpdate ModuleTag_RespawnUpdate ; DeathAnim = STUNNED;Model condition to play when killed-to-respawn DeathFX = FX_GlorfindelDieToRespawn;FXList to play when killed-to-respawn DeathAnim = DYING;Model condition to play when killed-to-respawn DeathAnimationTime = 6500;How long DeathAnim will take. InitialSpawnFX = FX_GlorfindelInitialSpawn RespawnAnim = LEVELED;Animation to play when respawning. RespawnFX = FX_GlorfindelRespawn;FXList to play when respawning. RespawnAnimationTime = 2000;Time it takes for respawn to play. AutoRespawnAtObjectFilter = NONE +CASTLE_KEEP;Respawn at this location -- and at it's exit production point if possible. ButtonImage = KUKnightDolAmPortrait_res ;RespawnEntries determine the ruleset for how a character can be revived. Some units may automatically respawn, others ;may require a specific revive action performed on him. You can specify different values for each level... or use Level:Any RespawnRules = AutoSpawn:No Cost:1125 Time:60000 Health:100%;DEFAULT VALUES End Behavior = AutoHealBehavior ModuleTag_GlorfindelHealing StartsActive = Yes HealingAmount = HERO_HEAL_AMOUNT HealingDelay = 1000 StartHealingDelay = HERO_HEAL_DELAY HealOnlyIfNotInCombat = Yes End ; autoability for casting Wind Rider and Blade of Purity, Wind Rider Behavior = AutoAbilityBehavior ModuleTag_AutoAbilityBehavior End #include "..\..\..\includes\DefaultInvisibilityUpdate.inc" Behavior = StancesBehavior ModuleTag_StancesBehavior StanceTemplate = Hero End #include "..\..\..\includes\CaptureBuilding.inc" Behavior = AIUpdateInterface ModuleTag_03 AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS STEALTHED MoodAttackCheckRate = 500 CanAttackWhileContained = Yes End LocomotorSet Locomotor = HeroHumanLocomotor Condition = SET_NORMAL Speed = NORMAL_MOUNTED_FAST_MEMBER_SPEED End LocomotorSet Locomotor = HeroHorseLocomotor Condition = SET_MOUNTED Speed = NORMAL_MOUNTED_FAST_MEMBER_SPEED End Behavior = SquishCollide ModuleTag_06 ;nothing End Behavior = NotifyTargetsOfImminentProbableCrushingUpdate ModuleTag_NotifyCrushScan End ; --------- KINGS FAVOUR ----------------------------------------------------------------- Behavior = UnpauseSpecialPowerUpgrade ModuleTag_KingsFavorEnabler SpecialPowerTemplate = SpecialAbilityKingsFavor TriggeredBy = Upgrade_TheodenKingsFavor End Behavior = SpecialPowerModule ModuleTag_KingsFavorSpecialPowerModule SpecialPowerTemplate = SpecialAbilityKingsFavor StartsPaused = Yes UpdateModuleStartsAttack = Yes InitiateSound = TheodenVoiceFavor End Behavior = LevelGrantSpecialPower ModuleTag_KingsFavor SpecialPowerTemplate = SpecialAbilityKingsFavor UnpackingVariation = 2 StartAbilityRange = 200.0 ; LevelFX = FX_PorterDeliver LevelFX = FX_LevelUp Experience = 50 RadiusEffect = 150 AcceptanceFilter = KINGSFAVOR_OBJECTFILTER UnpackTime = 3000 PreparationTime = 0 FreezeAfterTriggerDuration = 2000; Hold AI for this long after we fire. End ; --------- ATHELAS ----------------------------------------------------------------- Behavior = SpecialPowerModule ModuleTag_AragornAthelas SpecialPowerTemplate = SpecialAbilityAragornAthelas UpdateModuleStartsAttack = Yes TriggerFX = FX_AragornAthelas SetModelCondition = ModelConditionState:USER_2 SetModelConditionTime = 2.1 End Behavior = SpecialAbilityUpdate ModuleTag_AragornAthelasUpdate SpecialPowerTemplate = SpecialAbilityAragornAthelas StartAbilityRange = 1.6 UnpackTime = 1 ; Nothing to touching it PreparationTime = 3 ; touching it to grabbing it PackTime = 2096 ; whacking it to holding it nice AwardXPForTriggering = 0 End Behavior = AutoAbilityBehavior ModuleTag_AthelasAutoAbility SpecialAbility = SpecialAbilityAragornAthelas MaxScanRange = 150 Query = 1 NONE +HERO ALLIES End ;------------ KNIGHTS HORSE LORD PASSIVE LEADERSHIP ABILITY ------------ Behavior = UnpauseSpecialPowerUpgrade ModuleTag_TheodenLeadership SpecialPowerTemplate = SpecialAbilityFakeLeadership TriggeredBy = Upgrade_TheodenKingsFavor End Behavior = SpecialPowerModule ModuleTag_TheodenLeadershipUpdate SpecialPowerTemplate = SpecialAbilityFakeLeadership UpdateModuleStartsAttack = No StartsPaused = Yes End Behavior = AttributeModifierAuraUpdate ModuleTag_Leadership StartsActive = No;If no, requires upgrade to turn on. BonusName = KnightsLeadership ; GenericHeroLeadership TriggeredBy = Upgrade_TheodenKingsFavor RefreshDelay = 2000 Range = 200 ObjectFilter = GENERIC_BUFF_RECIPIENT_OBJECT_FILTER End ;------------------------------------------- ;;;; Elven Gift bonus Behavior = AutoHealBehavior ModuleTag_ElvenGiftHealing StartsActive = No TriggeredBy = Upgrade_ElvenGift HealingAmount = ELVEN_GIFT_REGEN_AMOUNT HealingDelay = ELVEN_GIFT_REGEN_DELAY StartHealingDelay = HERO_HEAL_DELAY HealOnlyIfNotInCombat = Yes End Behavior = AttributeModifierUpgrade ModuleTag_ElvenGiftBonus TriggeredBy = Upgrade_ElvenGift AttributeModifier = SpellBookElvenGifts End Behavior = HitReactionBehavior HitReactionBehaviorModuleTag HitReactionLifeTimer1 = 2700; level 1 (light damage) hit reaction animations in msec HitReactionLifeTimer2 = 3366; level 2 (medium damage) hit reaction animations in msec HitReactionLifeTimer3 = 10; level 3 (heavy damage) hit reaction animations in msec HitReactionThreshold1 = 5.0; level 1 (light damage) threshold trigger HitReactionThreshold2 = 100.0; level 2 (medium damage) threshold trigger HitReactionThreshold3 = 300.0; level 3 (heavy damage) threshold trigger End Behavior = DualWeaponBehavior ModuleTag_13 SwitchWeaponOnCloseRangeDistance = 80 End Behavior = PhysicsBehavior ModuleTag_04 GravityMult = 1.0 End Behavior = SlowDeathBehavior ModuleTag_05 DeathTypes = ALL SinkDelay = 3000 SinkRate = 0.40 ; in Dist/Sec DestructionDelay = 8000 Sound = INITIAL TheodenVoiceDie End Behavior = SquishCollide ModuleTag_06 ;nothing End Behavior = HitReactionBehavior HitReactionBehaviorModuleTag HitReactionLifeTimer1 = 7; level 1 (light damage) hit reaction animations in frames (5 per sec) HitReactionLifeTimer2 = 15; level 2 (medium damage) hit reaction animations in frames (5 per sec) HitReactionLifeTimer3 = 10; level 3 (heavy damage) hit reaction animations in frames (5 per sec) HitReactionThreshold1 = 0.0 ; level 1 (light damage) threshold trigger HitReactionThreshold2 = 25.0 ; level 2 (medium damage) threshold trigger HitReactionThreshold3 = 50.0 ; level 3 (heavy damage) threshold trigger End ;/////////////////// ; AISpecialPowers ;/////////////////// Behavior = AISpecialPowerUpdate GondorFighterHordeStanceBattle CommandButtonName = Command_SetStanceBattle SpecialPowerAIType = AI_SPECIAL_POWER_STANCEBATTLE End Behavior = AISpecialPowerUpdate GondorFighterHordeStanceAggressive CommandButtonName = Command_SetStanceAggressive SpecialPowerAIType = AI_SPECIAL_POWER_STANCEAGGRESSIVE End Behavior = AISpecialPowerUpdate GondorFighterHordeHoldGround CommandButtonName = Command_SetStanceHoldGround SpecialPowerAIType = AI_SPECIAL_POWER_STANCEHOLDGROUND End Behavior = AISpecialPowerUpdate SpecialPowerTheodenGiveXPAoE CommandButtonName = Command_SpecialAbilityKingsFavor SpecialPowerAIType = AI_SPECIAL_POWER_GIVEXP_AOE SpecialPowerRadius = 30.0 End Behavior = AISpecialPowerUpdate SpecialPowerAragornAthelas CommandButtonName = Command_SpecialAbilityAthelas SpecialPowerAIType = AI_SPECIAL_POWER_SELFAOEHEALHEROS SpecialPowerRadius = 30.0 End GeometryIsSmall = Yes Geometry = CYLINDER GeometryMajorRadius = 10 GeometryHeight = 20.0 Shadow = SHADOW_DECAL ShadowSizeX = 30; ShadowSizeY = 21; ShadowTexture = ShadowI; End
commandset.ini
CommandSet GondorPrinceImrahilCommandSet 1 = Command_ToggleStance 2 = Command_SpecialAbilityAthelas 3 = Command_SpecialAbilityKingsFavor 4 = Command_SpecialAbilityTheodenLeadership 13 = Command_AttackMove 14 = Command_Stop 15 = Command_Guard End
experiencelevels.ini
[code=auto:0]ExperienceLevel PrinceImrahilLevel1
TargetNames = PrinceImrahil
RequiredExperience = 1
ExperienceAward = THEODEN_LVL1_EXP_AWARD
Rank = 1
Upgrades = Upgrade_Athelas; Upgrade_TheodenLeadership
SelectionDecal
Texture = decal_hero_good
Style = SHADOW_ALPHA_DECAL
OpacityMin = 50%
OpacityMax = 100%
MinRadius = 40;16
MaxRadius = 200;16
MaxSelectedUnits = 40;1
End
End
ExperienceLevel PrinceImrahilLevel2
TargetNames = PrinceImrahil
RequiredExperience = THEODEN_LVL2_EXP_NEEDED
ExperienceAward = THEODEN_LVL2_EXP_AWARD
LevelUpFx = FX:GandalfLevelUp1FX
;LevelUpOCL = OCL_GandalfLevelUp1OCL
Rank = 2
AttributeModifiers = HeroLevelUpDamage1
SelectionDecal
Texture = decal_hero_good
Style = SHADOW_ALPHA_DECAL
OpacityMin = 50%
OpacityMax = 100%
MinRadius = 40;16
MaxRadius = 200;16
MaxSelectedUnits = 40;1
End
End
ExperienceLevel PrinceImrahilLevel3
TargetNames = PrinceImrahil
RequiredExperience = THEODEN_LVL3_EXP_NEEDED
ExperienceAward = THEODEN_LVL3_EXP_AWARD
LevelUpFx = FX:GandalfLevelUp1FX
;LevelUpOCL = OCL_GandalfLevelUp1OCL
Rank = 3
AttributeModifiers = HeroLevelUpDamage2
SelectionDecal
Texture = decal_hero_good
Style = SHADOW_ALPHA_DECAL
OpacityMin = 50%
OpacityMax = 100%
MinRadius = 40;16
MaxRadius = 200;16
MaxSelectedUnits = 40;1
End
End
ExperienceLevel PrinceImrahilLevel4
TargetNames = PrinceImrahil
RequiredExperience = THEODEN_LVL4_EXP_NEEDED
ExperienceAward = THEODEN_LVL4_EXP_AWARD
LevelUpFx = FX:GandalfLevelUp1FX
;LevelUpOCL = OCL_GandalfLevelUp1OCL
Rank = 4
Upgrades = Upgrade_TheodenLeadership; Upgrade_TheodenKingsFavor
AttributeModifiers = HeroLevelUpDamage3
SelectionDecal
Texture = decal_hero_good
Style = SHADOW_ALPHA_DECAL
OpacityMin = 50%
OpacityMax = 100%
MinRadius = 40;16
MaxRadius = 200;16
MaxSelectedUnits = 40;1
End
End
ExperienceLevel PrinceImrahilLevel5
TargetNames = PrinceImrahil
RequiredExperience = THEODEN_LVL5_EXP_NEEDED
ExperienceAward = THEODEN_LVL5_EXP_AWARD
LevelUpFx = FX:GandalfLevelUp1FX
;LevelUpOCL = OCL_GandalfLevelUp1OCL
Upgrades = Upgrade_TheodenKingsFavor; Upgrade_TheodenGloriousCharge
Rank = 5
AttributeModifiers = HeroLevelUpDamage4
SelectionDecal
Texture = decal_hero_good
Style = SHADOW_ALPHA_DECAL
OpacityMin = 50%
OpacityMax = 100%
MinRadius = 40;16
MaxRadius = 200;16
MaxSelectedUnits = 40;1
End
End
ExperienceLevel PrinceImrahilLevel6
TargetNames = PrinceImrahil
RequiredExperience = THEODEN_LVL6_EXP_NEEDED
ExperienceAward = THEODEN_LVL6_EXP_AWARD
LevelUpFx = FX:GandalfLevelUp1FX
;LevelUpOCL = OCL_GandalfLevelUp1OCL
Rank = 6; Removed from 1.07
AttributeModifiers = HeroLevelUpDamage5
SelectionDecal
Texture = decal_hero_good
Style = SHADOW_ALPHA_DECAL
OpacityMin = 50%
OpacityMax = 100%
MinRadius = 40;16
MaxRadius = 200;16
MaxSelectedUnits = 40;1
End
End
ExperienceLevel PrinceImrahilLevel7
TargetNames = PrinceImrahil
RequiredExperience = THEODEN_LVL7_EXP_NEEDED
ExperienceAward = THEODEN_LVL7_EXP_AWARD
LevelUpFx = FX:GandalfLevelUp1FX
;LevelUpOCL = OCL_GandalfLevelUp1OCL
Rank = 7
AttributeModifiers = HeroLevelUpDamage6
SelectionDecal
Texture = decal_hero_good
Style = SHADOW_ALPHA_DECAL
OpacityMin = 50%
OpacityMax = 100%
MinRadius = 40;16
MaxRadius = 200;16
MaxSelectedUnits = 40;1
End
End
ExperienceLevel PrinceImrahilLevel8
TargetNames = PrinceImrahil
RequiredExperience = THEODEN_LVL8_EXP_NEEDED
ExperienceAward = THEODEN_LVL8_EXP_AWARD
LevelUpFx = FX:GandalfLevelUp1FX
;LevelUpOCL = OCL_GandalfLevelUp1OCL
Rank = 8
AttributeModifiers = HeroLevelUpDamage7
SelectionDecal
Texture = decal_hero_good
Style = SHADOW_ALPHA_DECAL
OpacityMin = 50%
OpacityMax = 100%
MinRadius = 40;16
MaxRadius = 200;16
MaxSelectedUnits = 40;1
End
End
ExperienceLevel PrinceImrahilLevel9
TargetNames = PrinceImrahil
RequiredExperience = THEODEN_LVL9_EXP_NEEDED
ExperienceAward = THEODEN_LVL9_EXP_AWARD
LevelUpFx = FX:GandalfLevelUp1FX
;LevelUpOCL = OCL_GandalfLevelUp1OCL
Rank = 9
AttributeModifiers = HeroLevelUpDamage8
SelectionDecal
Texture = decal_hero_good
Style = SHADOW_ALPHA_DECAL
OpacityMin = 50%
OpacityMax = 100%
MinRadius =&n