[en] - Modding Corner > General Modding Questions

Boromir horse toggle

(1/1)

TE_:
Hi,

I am playing around a little bit and wanted to do some "hero" changes in BFME2. In particular, I want to add Horse Toggle to Boromir. So, I took Faramir as a reference and add the code to Boromir I thought would be working, used RandomTexture to change the horse/object texture of the Faramir on the horse and everything seems to be working, except one thing.

While the Horse Toggle is pushed there should be some fade out of the character and then fade in of the horse model. The horse model fade in nicely but the character (Boromir on foot) disappears instantly, no animation or fade out. If Boromir is on the horse and I push the horse toggle, the Horse model fade out nicely but again, the character (Boromir) model shows instantly.

I have tried to change the Boromir model to Aragorn SKN or Eomer, the hero was walking funny since the model wasn't right but the fade in/out worked.  I have no idea why it is not working here... any ideas, thoughts?

ps: the ini code below.


--- Code: ---;------------------------------------------------------------------------------
;
;    Boromir.ini
;
;------------------------------------------------------------------------------

;
Object GondorBoromirParent
    ; *** ART Parameters ***

    ; SelectPortrait for Heros is portrait behind skill buttons. HP = HeroPortrait.
    SelectPortrait = HPBorimir
   
    ; ButtonImage for Heros is button image on Hero Select UI to select hero. HI = HeroIcon or HeroImage.
    ButtonImage = HIBorimir
   
    DescriptionStrategic = CONTROLBAR:LW_ToolTip_Boromir
 
 
    ;Draw = W3DScriptedModelDraw ModuleTag_01
   Draw = W3DScriptedModelDraw ModuleTag_DRAW

   StaticModelLODMode = yes ; Will append M or L to the skin name depending on GameLOD

      OkToChangeModelColor = Yes

        DefaultModelConditionState
            Model               = GUBoromir2_SKN ;RUEomer_SKN
        End
        ; --- Idle Anims

      ModelConditionState = WEAPONSET_HERO_MODE USER_3
        ParticleSysBone = BAT_RIBS BladeMaster FollowBone:Yes
        ParticleSysBone = BAT_HEAD AragornElendill FollowBone:Yes
      End
     
      ModelConditionState = WEAPONSET_HERO_MODE
          ParticleSysBone = BAT_RIBS BladeMaster FollowBone:Yes
      End
     
      ModelConditionState = USER_3
          ParticleSysBone = BAT_HEAD AragornElendill FollowBone:Yes
      End
;////start---Tomalf, mounted Boromir
ExtraPublicBone = PASSENGERBONE
DependencySharedModelFlags = TURN_LEFT_HIGH_SPEED TURN_RIGHT_HIGH_SPEED MOVING ACCELERATE DECELERATE TURN_LEFT TURN_RIGHT ATTACKING BACKING_UP
; --------- On Horseback ------------

RandomTexture = gubaramir.tga 0 gufaramir.tga
RandomTexture = gubrmirhrse.tga 0 gufrmirhrse.tga
RandomTexture = gubrmirshield.tga 0 gufrmirshield.tga

ModelConditionState = MOUNTED
Model               = GUFrmrHrs_SKN
WeaponLaunchBone    = PRIMARY PASSENGERBONE
End
;;----------- Captain of Gondor Mounted
AnimationState        = PACKING_TYPE_2 MOUNTED
StateName   = STATE_CaptainMounted

Animation           =  GUFaramir_IDLC ;;GUBoromir_IDLC
AnimationName     = RUHHs_Theo_SKL.RUHHs_Theo_IDLC ;; GUBoromir_SKL.GUBoromir_IDLC
AnimationMode     = ONCE
;AnimationBlendTime = 5
                AnimationSpeedFactorRange = 0.5 0.5
End
End
       

; --------- MOUNTED  ------------
; --- Dying Anims
AnimationState = MOUNTED FREEFALL
Animation = freefall
AnimationName = RUHHs_Theo_SKL.RUHHs_Theo_FLYC
AnimationMode = LOOP
End
Flags = RANDOMSTART
End

AnimationState = MOUNTED STUNNED_FLAILING
Animation = JustDie
AnimationName = RUHHs_Theo_SKL.RUHHs_Theo_FLYC
AnimationMode = LOOP
End
Flags = RANDOMSTART
End

AnimationState = MOUNTED DYING SPLATTED
Animation = Land
AnimationName = RUHHs_Theo_SKL.RUHHs_Theo_LNDA
AnimationMode = ONCE
End
End

; This is the no-spawn-horse type of death
AnimationState = MOUNTED DYING
Animation = JustDie
AnimationName = RUHHs_Theo_SKL.RUHHs_Theo_DIEA
AnimationMode = ONCE
End
End

AnimationState = MOUNTED STUNNED_STANDING_UP
Animation = StandUp
AnimationName = RUHHs_Theo_SKL.RUHHs_Theo_GTPA
AnimationMode = ONCE
AnimationSpeedFactorRange = 1.5 1.5
End
End

AnimationState = MOUNTED STUNNED
Animation = Land
AnimationName = RUHHs_Theo_SKL.RUHHs_Theo_LNDA
AnimationMode = ONCE
End
End

AnimationState = PARALYZED MOUNTED
Animation
AnimationName = RUHHs_Theo_SKL.RUHHs_Theo_IDLA
AnimationMode = LOOP
End
End


; --- Attacking Anims
AnimationState        =  MOUNTED FIRING_OR_PREATTACK_A ATTACKING_STRUCTURE
StateName = Attacking
Animation = attackinga  building while mounted.
AnimationName           = RUHHs_Theo_SKL.RUHHs_Theo_ATKA  ;ATKB looked pretty silly.
AnimationMode       = ONCE
UseWeaponTiming = Yes
End
End



AnimationState        = MOUNTED MOVING FIRING_OR_PREATTACK_A
ShareAnimation = Yes
Animation           = MountedRunAndFire
AnimationName       = RUHHs_Theo_SKL.RUHHs_Theo_ATRA
AnimationMode       = LOOP
End
Flags               = RANDOMSTART 
End

AnimationState = MOUNTED FIRING_OR_PREATTACK_A
Animation = AttackA
AnimationName = RUHHs_Theo_SKL.RUHHs_Theo_ATKA
AnimationMode = ONCE
UseWeaponTiming = Yes
End
Animation = AttackB
AnimationName = RUHHs_Theo_SKL.RUHHs_Theo_ATKB
AnimationMode = ONCE
UseWeaponTiming = Yes
End
End

; --- Moving Anims
AnimationState = MOUNTED TURN_LEFT_HIGH_SPEED
Animation = TurnLeft
AnimationName = RUHHs_Theo_SKL.RUHHs_Theo_TNL1
AnimationMode = LOOP
AnimationSpeedFactorRange= 1.2 1.2
AnimationBlendTime = 20
End
End

AnimationState = MOUNTED TURN_RIGHT_HIGH_SPEED
Animation = TurnLeft
AnimationName = RUHHs_Theo_SKL.RUHHs_Theo_TNR1
AnimationMode = LOOP
AnimationSpeedFactorRange= 1.2 1.2
AnimationBlendTime = 20
End
End




AnimationState = MOUNTED MOVING TURN_LEFT
Animation = TurnLeft
AnimationName = RUHHs_Theo_SKL.RUHHs_Theo_TRNL
AnimationMode = LOOP
AnimationSpeedFactorRange= 1.5 1.5
End
; ;ParticleSysBone = None CalvaryDustTrails
End

AnimationState = MOUNTED MOVING TURN_RIGHT
Animation = TurnRight
AnimationName = RUHHs_Theo_SKL.RUHHs_Theo_TRNR
AnimationMode = LOOP
AnimationSpeedFactorRange= 1.5 1.5
End
; ;ParticleSysBone = None CalvaryDustTrails
End

AnimationState = MOUNTED MOVING ACCELERATE
Animation = Accelerate
AnimationName = RUHHs_Theo_SKL.RUHHs_Theo_ACCL
AnimationMode = LOOP
End
;ParticleSysBone = None CalvaryDustTrails
End

AnimationState = MOUNTED MOVING DECELERATE
Animation = Decelerate
AnimationName = RUHHs_Theo_SKL.RUHHs_Theo_DECL
AnimationMode = ONCE
AnimationSpeedFactorRange = 0.55 0.55
End
;ParticleSysBone = None CalvaryDustTrails
End

AnimationState = MOUNTED MOVING WALKING
Animation = Walk
AnimationName = RUHHs_Theo_SKL.RUHHs_Theo_WLKA
AnimationMode = LOOP
End
Flags = RANDOMSTART
;ParticleSysBone = None InfantryDustTrails 
End

AnimationState = MOUNTED MOVING BACKING_UP
Animation = BackingUp
AnimationName = RUHHs_Theo_SKL.RUHHs_Theo_BAKA
AnimationMode = LOOP
End
Flags = RANDOMSTART
;ParticleSysBone = None InfantryDustTrails 
End


AnimationState = MOUNTED MOVING
Animation = RunA
AnimationName = RUHHs_Theo_SKL.RUHHs_Theo_RUNA
AnimationMode = LOOP
End
  Flags = RANDOMSTART
;ParticleSysBone = None CalvaryDustTrails 
End

; --- Selected Anims
AnimationState = MOUNTED SELECTED
SimilarRestart =   Yes
StateName = AtAttentionIdle
Animation = ATNB
AnimationName = RUHHs_Theo_SKL.RUHHs_Theo_IDLH
AnimationMode = LOOP
End
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "Idle" then CurDrawableSetTransitionAnimState("TRANS_MountedSelect") end
if Prev == "AtAttentionIdle" then CurDrawableSetTransitionAnimState("TRANS_MountedSelect") end
if Prev == "STATE_CaptainMounted" then CurDrawableSetTransitionAnimState("TRANS_MountedSelect") end
EndScript
End

TransitionState = TRANS_MountedSelect
Animation = ATNA
AnimationName = RUHHs_Theo_SKL.RUHHs_Theo_ATNA
AnimationMode = ONCE
End
End
;////end---Tomalf, mounted Boromir
; HITA not available on Theoden
; AnimationState = MOUNTED HIT_REACTION
; Animation = Hit_Level_1_a
; AnimationName = RUHHs_Theo_SKL.RUHHs_Theo_HITA
; AnimationMode = ONCE
; End
; End

; --- Idle Anims
AnimationState = MOUNTED
StateName = Idle
Animation = IdleA
AnimationName = RUHHs_Theo_SKL.RUHHs_Theo_IDLA
AnimationPriority = 30
AnimationMode = ONCE
AnimationBlendTime = 15
           End     
//addiotnal animation, IdleB
           Animation = IdleB
AnimationName = RUHHs_Theo_SKL.RUHHs_Theo_IDLB
AnimationMode = ONCE
AnimationBlendTime = 15               
End
Animation = IdleC
AnimationName = RUHHs_Theo_SKL.RUHHs_Theo_IDLC
AnimationMode = ONCE
AnimationBlendTime = 15
End
Flags = RESTART_ANIM_WHEN_COMPLETE
End
                       
        IdleAnimationState
            StateName = Idle           
;            Animation           = IDLA
;                AnimationName     = GUBoromir_SKL.GUBoromir_IDLA 0 15
;                AnimationMode     = ONCE
;            End           
            Animation           = IDLB
                AnimationName     = GUBoromir_SKL.GUBoromir_IDLB
                AnimationMode     = ONCE
                AnimationPriority   = 20
            End           
            Animation           = IDLD
                AnimationName     = GUBoromir_SKL.GUBoromir_IDLD
                AnimationMode     = ONCE
                AnimationPriority   = 1
            End     
            Animation           = IDLC
                AnimationName     = GUBoromir_SKL.GUBoromir_IDLC
                AnimationMode     = ONCE
                AnimationPriority   = 1
                AnimationBlendTime = 5
            End 
            Animation           = IDLE
                AnimationName     = GUBoromir_SKL.GUBoromir_IDLE
                AnimationMode     = ONCE
                AnimationPriority   = 1
                AnimationBlendTime = 5
            End         
            BeginScript
                Prev = CurDrawablePrevAnimationState()
                if Prev == "Selected" then CurDrawableSetTransitionAnimState("TRANS_Selected_To_Idle") end
            EndScript           
        End

        TransitionState       = Trans_None_To_Sword
            Animation           = GUBoromir_STHA
                AnimationName     = GUBoromir_SKL.GUBoromir_STHA ;
                AnimationMode     = ONCE
            End
        End
        TransitionState       = Trans_Sword_To_None
            Animation           = GUBoromir_STHB
                AnimationName     = GUBoromir_SKL.GUBoromir_STHB ;
                AnimationMode     = ONCE
            End
        End
       
        AnimationState        = STUNNED_FLAILING
            Flags               = RANDOMSTART
            Animation           = GUBoromir_FLYA
                AnimationName     = GUBoromir_SKL.GUBoromir_FLYA
                AnimationMode     = LOOP
                AnimationSpeedFactorRange = 0.4 0.6 ;Tomalf
            End
        End


        ; --- Dying anims
       
        AnimationState        = DYING SPLATTED
            Animation           = GUBoromir_LNDA
                AnimationName     = GUBoromir_SKL.GUBoromir_LNDA
                AnimationMode     = ONCE
            End
        End
        AnimationState        = DYING AFLAME
            Animation = DieAflame
                AnimationName       = GUBoromir_SKL.GUBoromir_MFDA
                AnimationMode       = LOOP
            End
        End
        AnimationState        = DYING
            Animation           = GUBoromir_DTHA
                AnimationName     = GUBoromir_SKL.GUBoromir_DTHA
                AnimationMode     = ONCE
            End
        End
       
        AnimationState                        = PARALYZED
            Animation
                AnimationName                = GUBoromir_IDLB
                AnimationMode                = LOOP
            End
        End

        ; --- Stunned anims
        AnimationState        = STUNNED_STANDING_UP
            Animation           = GUBoromir_GTPA
                AnimationName     = GUBoromir_SKL.GUBoromir_GTPA
                AnimationMode     = ONCE
                AnimationSpeedFactorRange = 1.3 1.3
            End
        End
        AnimationState        = STUNNED
            Animation           = GUBoromir_LNDA
                AnimationName     = GUBoromir_SKL.GUBoromir_LNDA
                AnimationMode     = ONCE
            End
        End
       
        AnimationState        = PACKING_TYPE_2
            StateName          =    CaptainPower
            Animation           = GUBoromir_CHRA
                AnimationName     = GUBoromir_SKL.GUBoromir_CHRA
                AnimationMode     = ONCE
                AnimationSpeedFactorRange = 1.2 1.2
            End
        End

        ; -- Horn anims
        AnimationState        = UNPACKING SPECIAL_POWER_1
            Animation           
                AnimationName     = GUBoromir_SKL.GUBoromir_HRNA
                AnimationMode     = ONCE
            End
        End
        AnimationState        = PREPARING SPECIAL_POWER_1
            Animation           
                AnimationName     = GUBoromir_SKL.GUBoromir_HRNB
                AnimationMode     = ONCE
            End
            EnteringStateFX = FX_BoromirHorn
        End
        AnimationState        = PACKING SPECIAL_POWER_1
            Animation           
                AnimationName     = GUBoromir_SKL.GUBoromir_HRNC
                AnimationMode     = ONCE
            End
        End
        AnimationState        = SPECIAL_POWER_1
            Animation           
                AnimationName     = GUBoromir_SKL.GUBoromir_HRNB
                AnimationMode     = LOOP
            End
        End
       
        ; -- Last Stand Animations
        AnimationState        = UNPACKING SPECIAL_WEAPON_ONE
            Animation           
                AnimationName     = GUBoromir_SKL.GUBoromir_SPCA
                AnimationMode     = ONCE
            End
        End
        AnimationState        = PREPARING SPECIAL_WEAPON_ONE
            Animation           
                AnimationName     = GUBoromir_SKL.GUBoromir_SPCB
                AnimationMode     = ONCE
            End
            Animation           
                AnimationName     = GUBoromir_SKL.GUBoromir_SPCC
                AnimationMode     = ONCE
            End
        EnteringStateFX = FX_BoromirHorn
        End
        AnimationState        = PACKING SPECIAL_WEAPON_ONE
            Animation           
                AnimationName     = GUBoromir_SKL.GUBoromir_SPCE
                AnimationMode     = ONCE
            End
        End
        AnimationState        = SPECIAL_WEAPON_ONE
            Animation           
                AnimationName     = GUBoromir_SKL.GUBoromir_SPCB
                AnimationMode     = ONCE
            End
            Animation           
                AnimationName     = GUBoromir_SKL.GUBoromir_SPCC
                AnimationMode     = ONCE
            End
        End
       
        ; --- Moving Anims
        AnimationState        = MOVING WANDER WEAPONSTATE_CLOSE_RANGE
            StateName           = WithSword
            ;ParticleSysBone     = None InfantryDustTrails
            Animation           = GUBoromir_WLKA
                AnimationName     = GUBoromir_SKL.GUBoromir_WLKA
                AnimationMode     = LOOP
            End
        End
        ; non mo cap
;        AnimationState        = MOVING WEAPONSTATE_CLOSE_RANGE
;            StateName           = WithSword
;            Flags               = RANDOMSTART
;            ;ParticleSysBone     = None InfantryDustTrails
;            Animation           = GUBoromir_RUNB
;                AnimationName     = GUBoromir_SKL.GUBoromir_RUNB
;                AnimationMode     = LOOP
;            End
;        End
;        AnimationState        = MOVING DAMAGED
;            Flags               = RANDOMSTART
;            ;ParticleSysBone     = None InfantryDustTrails
;            Animation           = GUBoromir_IWKA
;                AnimationName     = GUBoromir_SKL.GUBoromir_IWKA
;                AnimationMode     = LOOP
;            End
;        End
        AnimationState        = MOVING WANDER
            ;ParticleSysBone     = None InfantryDustTrails
            Animation           = GUBoromir_WLKA
                AnimationName     = GUBoromir_SKL.GUBoromir_WLKA
                AnimationMode     = LOOP
            End
        End
       
       
        AnimationState        = MOVING FIRING_OR_PREATTACK_A
            ShareAnimation        = Yes
            Animation           = RunAndFire
                AnimationName       = GUBoromir_SKL.GUBoromir_ATRA
                AnimationMode       = LOOP
            End
            Flags               = RANDOMSTART 
        End
       
       
        AnimationState        = MOVING
            ;ParticleSysBone     = None InfantryDustTrails
            Flags               = RANDOMSTART
            Animation           = GUBoromir_RUNB
                AnimationName     = GUBoromir_SKL.GUBoromir_RUNA
                AnimationMode     = LOOP
            End
        End
       
       
        ; Attacking Anims [Weapon_A]
        AnimationState        = FIRING_OR_PREATTACK_A WEAPONSTATE_CLOSE_RANGE
            StateName           = WithSword
            Animation           = ATKA
                AnimationName     = GUBoromir_SKL.GUBoromir_ATKA
                AnimationMode     = ONCE
                UseWeaponTiming        = Yes
            End
            Animation           = ATKB
                AnimationName    = GUBoromir_SKL.GUBoromir_ATKB
                AnimationMode     = ONCE
                UseWeaponTiming        = Yes
            End
        End

        AnimationState        = FIRING_OR_PREATTACK_A
            Animation           = GUBoromir_ATD1
                AnimationName     = GUBoromir_SKL.GUBoromir_ATKB
                AnimationMode     = ONCE
                UseWeaponTiming        = Yes
            End
        End

        AnimationState = FIRING_OR_PREATTACK_A WEAPONSET_HERO_MODE ; Blademaster Mode
          StateName = STATE_ready
          Animation = GUBoromir_ATD1
          AnimationName = GUBoromir_SKL.GUBoromir_CHRA
          AnimationMode = ONCE
          UseWeaponTiming = Yes
          End
          Flags = RESTART_ANIM_WHEN_COMPLETE
          FXEvent = Frame:25 Name: FX_BladeMasterHitOrient
          FXEvent = Frame:45 Name: FX_BladeMasterHitOrient
        End


        ; --------- Idle Anims -non mocap-
;        AnimationState        = WEAPONSTATE_CLOSE_RANGE
;            StateName           = WithSword
;            Animation           = GUBoromir_IDLC
;                AnimationName     = GUBoromir_SKL.GUBoromir_IDLC
;                AnimationMode     = ONCE
;            End
;        End

        ; ATTACKING
        AnimationState        = ATTACKING
            Animation           = ALERT_1
                AnimationName     = GUBoromir_SKL.GUBoromir_IDLA
                AnimationMode     = LOOP; ONCE
            End
;            Flags               = RESTART_ANIM_WHEN_COMPLETE ; acts like an idle animation & keeps running the animations.
        End
       
        ; --------- Selected Anims and Transitions
        TransitionState                    =    TRANS_Idle_to_Selected
            Animation                    =    ATND
                AnimationName            =    GUBoromir_SKL.GUBoromir_ATND
                AnimationMode            =    ONCE
            End
        End
       
        TransitionState                    =    TRANS_Selected_To_Idle
            Animation                    =    ATNE
                AnimationName            =    GUBoromir_SKL.GUBoromir_ATNE
                AnimationMode            =    ONCE
            End
        End
       
        AnimationState                = LEVELED                         ; This state clears itself in 3 seconds
            Animation                = LevelUp
                AnimationName        = GUBoromir_SKL.GUBoromir_CHRA
                AnimationMode        = ONCE
            End
        End

        AnimationState            = RAISING_FLAG
            Animation           = CHRA
                AnimationName   = GUBoromir_SKL.GUBoromir_CHRA
                AnimationMode   = Once
            End
            Animation           = CHRB
                AnimationName   = GUBoromir_SKL.GUBoromir_CHRB
                AnimationMode   = Once
            End
            Flags                =    RESTART_ANIM_WHEN_COMPLETE
        End

        AnimationState                =    SELECTED
            StateName                =    Selected
            SimilarRestart            =   Yes           
            Animation                =    ATNB
                AnimationName        =    GUBoromir_SKL.GUBoromir_ATNB
                AnimationMode        =    LOOP
            End
            BeginScript
                Prev = CurDrawablePrevAnimationState()
                if Prev == "Idle" then CurDrawableSetTransitionAnimState("TRANS_Idle_to_Selected") end
            EndScript
        End
       
        ;------------emotions---------------
        AnimationState            = EMOTION_TAUNTING
            Animation           = CHRA
                AnimationName   = GUBoromir_SKL.GUBoromir_CHRA
                AnimationMode   = Once
            End
        End
       
        AnimationState            = EMOTION_CELEBRATING
            Animation           = CHRB
                AnimationName   = GUBoromir_SKL.GUBoromir_CHRB
                AnimationMode   = Once
            End
            Flags                =    RESTART_ANIM_WHEN_COMPLETE
        End
       
        AnimationState                    = EMOTION_ALERT EMOTION_MORALE_HIGH
            Animation                    = Taunting
                AnimationName            =  GUBoromir_SKL.GUBoromir_TNTB
                AnimationMode            = ONCE
            End
            Flags                        = RANDOMSTART RESTART_ANIM_WHEN_COMPLETE
        End
       
        ; READY IDLE
        AnimationState        = EMOTION_ALERT
            Animation           = ALERT_1
                AnimationName     = GUBoromir_SKL.GUBoromir_IDLA
                AnimationMode     = LOOP ;ONCE
            End
;            Flags               = RESTART_ANIM_WHEN_COMPLETE ; acts like an idle animation & keeps running the animations.
        End
       
       
        ; --------- Click and Hit Reactions ------------
        AnimationState = HIT_REACTION HIT_LEVEL_1
            Animation = Hit_Level_1_a
                AnimationName = GUBoromir_SKL.GUBoromir_HITA
                AnimationMode = ONCE
            End
        End       



    End
   
    ;////start---Tomalf, mounted Boromir
    Draw = W3DScriptedModelDraw DustEffects
    DefaultModelConditionState
      Model = None
    End
    IdleAnimationState
    End
    AnimationState = MOUNTED MOVING WADING
ParticleSysBone = None FootstepSlash
    End
    AnimationState = MOUNTED MOVING ACCELERATE
ParticleSysBone = None GenericSiegeTrailDust
    End
    AnimationState = MOUNTED MOVING ACCELERATE
ParticleSysBone = None GenericSiegeTrailDust
    End
    AnimationState = MOUNTED MOVING
    End
End
    ;////end---Tomalf, mounted Boromir
    #include "..\includes\StunDrawModuleSmall.inc"


    ; ***DESIGN parameters ***
    Side = Men
    EditorSorting = UNIT
    ThreatLevel = BOROMIR_THREAT_LEVEL
    ThingClass = CHARACTER_UNIT
      BuildCost         = 5;BOROMIR_EM_BUILDCOST               
      BuildTime         = 5;BOROMIR_EM_BUILDTIME   
    ShockwaveResistance = SHOCKWAVE_RESISTANCE_STRONG   
    ;//DisplayMeleeDamage = BOROMIR_DAMAGE       
   
    HeroSortOrder = 50
   
    TransportSlotCount = TRANSPORTSLOTCOUNT_HERO
    WeaponSet
        Conditions = None
        Weapon = PRIMARY    BoromirSword
        ;AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
    End
   ;////start---Tomalf, mounted Boromir
    WeaponSet
Conditions = MOUNTED
Weapon = PRIMARY BoromirSword
End
    ;////end---Tomalf, mounted Boromir
    ArmorSet
        Conditions      = None
        Armor           = ToughHeroArmor
        DamageFX        = NormalDamageFX
    End
    ;////start---Tomalf, mounted Boromir   
    ArmorSet
Conditions      = MOUNTED
Armor           = HeroArmorMounted
DamageFX        = NormalDamageFX
End
    ;////end---Tomalf, mounted Boromir   
    VisionRange = VISION_HERO_STANDARD               
    ShroudClearingRange = SHROUD_CLEAR_HERO
    MaxVisionBonusPercent = 300%
    VisionBonusTestRadius = 200
    VisionBonusPercentPerFoot = 1.0%

    BountyValue = GONDOR_BOROMIR_BOUNTY_VALUE
    DisplayName = OBJECT:GondorBoromir
    RecruitText = CONTROLBAR:GondorBoromirRecruit
    ReviveText    = CONTROLBAR:GondorBoromirRevive
    Hotkey        = CONTROLBAR:GondorBoromirHotkey
     ;////start---Tomalf, mounted Boromir
    CrusherLevel = 0 ;Can I crush anything?
MountedCrusherLevel = 1 ;Crush level when mounted.
    ;////end---Tomalf, mounted Boromir   
    CrushableLevel = 2  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
    ;////start---Tomalf, mounted Boromir
    MountedCrushableLevel = 2 ;Crusable level when mounted.
   
    CrushWeapon = HeroCrush 

MinCrushVelocityPercent = 50 ; Has to be moving at at least 50% of full speed.
CrushDecelerationPercent = 30 ; Lose xx percent of max velocity when crushing.

CrushKnockback = 40
CrushZFactor = 1.0
     ;////end---Tomalf, mounted Boromir
    CommandSet = BoromirCommandSet
    CommandPoints = CPBOROMIR_EM


    ; *** AUTO RESOLVE DATA ***
    AutoResolveUnitType = AutoResolveUnit_Hero
    AutoResolveCombatChain = AutoResolve_HeroCombatChain

    AutoResolveBody = AutoResolve_BoromirBody
   
    AutoResolveArmor
        Armor = AutoResolve_BoromirArmor
    End

    AutoResolveWeapon
        Weapon = AutoResolve_BoromirWeapon
    End

    AutoResolveLeadership = AutoResolve_BoromirBonus


    ; *** AUDIO Parameters ***;

    VoiceAttack                = BoromirVoiceAttack
    VoiceAttackCharge            = BoromirVoiceAttackCharge
    VoiceAttackMachine        = BoromirVoiceAttack
    VoiceAttackStructure        = BoromirVoiceAttackBuilding
    VoiceCreated            = BoromirVoiceSalute    ;this conflicts with his respawn dialogue line -- rehooked to spawn FX
    VoiceFullyCreated         = BoromirVoiceSalute    ;this conflicts with his respawn dialogue line -- rehooked to spawn FX
    VoiceFear                 = BoromirVoiceHelpMe
    VoiceMove                = BoromirVoiceMove
    VoiceMoveToCamp            = BoromirVoiceMoveCamp
    VoiceMoveWhileAttacking        = BoromirVoiceDisengage
    VoicePriority            = 84
    VoiceRetreatToCastle        = BoromirVoiceRetreat
    VoiceSelect                = BoromirVoiceSelectMS
    VoiceSelectBattle         = BoromirVoiceSelectBattle
    VoiceGuard                = BoromirVoiceMove

    SoundImpact                = ImpactHorse

;BoromirVoiceJoinAnybody

    UnitSpecificSounds
        VoiceGarrison                        = BoromirVoiceGarrison
        VoiceEnterUnitElvenTransportShip    = BoromirVoiceMove
        VoiceInitiateCaptureBuilding        = BoromirVoiceMove
    End
;////start---Tomalf, mounted Boromir   
ClientBehavior = ModelConditionSoundSelectorClientBehavior ModuleTag_MCSoundSelector
SoundState = MOUNTED
VoiceAttack = FaramirKnightVoiceAttack
VoiceAttackCharge = FaramirKnightVoiceAttackCharge
VoiceAttackMachine = FaramirKnightVoiceAttackBuilding
VoiceAttackStructure = FaramirKnightVoiceAttackBuilding
VoiceCreated = FaramirRangerVoiceSalute ;this conflicts with his respawn dialogue line
VoiceFullyCreated = FaramirRangerVoiceSalute ;this conflicts with his respawn dialogue line
VoiceFear = FaramirKnightVoiceHelpMe
VoiceMove = FaramirKnightVoiceMove
VoiceMoveToCamp = FaramirKnightVoiceMoveCamp
VoiceMoveWhileAttacking = FaramirKnightVoiceDisengage
VoiceRetreatToCastle = FaramirKnightVoiceRetreat
VoiceSelect = FaramirKnightVoiceSelectMS
VoiceSelectBattle = FaramirKnightVoiceSelectBattle
VoiceGuard = FaramirKnightVoiceMove

;SoundMoveStart = GondorHorseMoveStart ;this is for horse hordes
SoundImpact = ImpactHorse

VoicePriority = 82   ; You could do this if you wanted to...

UnitSpecificSounds
VoiceGarrison = FaramirKnightVoiceMove  ; Just double-checking we don't play a ranger voice here           
VoiceMoveToTrees = FaramirKnightVoiceMove  ; So we don't play a ranger voice here
End
End
End
;////end---Tomalf, mounted Boromir   

    CrowdResponseKey = GoodMen
   ; #include "..\includes\DefaultInvisibilityUpdate.inc"
    #include "..\includes\StandardUnitEvaEvents.inc"
    EvaEventDieOwner = BoromirDie                        ;Eva event to trigger on unit's death. NOTICE THAT this is only for permanent deaths
                                            ;For deaths you can respawn from, use the DeathFX

    ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
        MaxUpdateRangeCap = 800
        AnimationSound = Sound:SwordIntoScabbard1        Animation:GUBoromir_SKL.GUBoromir_HRNA     Frames:7
        AnimationSound = Sound:BoromirHorn            Animation:GUBoromir_SKL.GUBoromir_HRNB     Frames:0
        AnimationSound = Sound:SwordShingClean1        Animation:GUBoromir_SKL.GUBoromir_HRNC     Frames:5
        AnimationSound = Sound:FootstepDirtA        Animation:GUBoromir_SKL.GUBoromir_RUNA     Frames:10 22
        AnimationSound = Sound:FootstepDirtA        Animation:GUBoromir_SKL.GUBoromir_RUNB     Frames:10 22
        AnimationSound = Sound:FootstepDirtA        Animation:GUBoromir_SKL.GUBoromir_ATRA     Frames:11 23 35 47
        AnimationSound = Sound:FootstepDirtA        Animation:GUBoromir_SKL.GUBoromir_MFDA    Frames:8 20 31 41

        AnimationSound = Sound:BodyFallGenericNoArmor    Animation:GUBoromir_SKL.GUBoromir_DTHA     Frames:116
        AnimationSound = Sound:BodyFallSoldier        Animation:GUBoromir_SKL.GUBoromir_LNDA     Frames:4
        AnimationSound = Sound:BodyFallGenericNoArmor    Animation:GUBoromir_SKL.GUBoromir_SPCE     Frames:82
 ;////start---Tomalf, mounted Boromir           
AnimationSound = Sound:HorseMoveFootsteps Animation:RUHHs_Theo_SKL.RUHHs_Theo_ACCL Frames:14 32
AnimationSound = Sound:HorseMoveFootsteps Animation:RUHHs_Theo_SKL.RUHHs_Theo_RUNA Frames:0
AnimationSound = Sound:HorseMoveFootsteps Animation:RUHHs_Theo_SKL.RUHHs_Theo_TNL1 Frames:0
AnimationSound = Sound:HorseMoveFootsteps Animation:RUHHs_Theo_SKL.RUHHs_Theo_TNR1 Frames:0

AnimationSound = Sound:HorseWhinny50Percent Animation:RUHHs_Theo_SKL.RUHHs_Theo_IDLC Frames:0

AnimationSound = Sound:HorseDieForHero Animation:RUHHs_Theo_SKL.RUHHs_Theo_LNDA Frames:0
AnimationSound = Sound:BodyFallSoldier Animation:RUHHs_Theo_SKL.RUHHs_Theo_LNDA Frames:1 9

AnimationSound = Sound:HorseDieForHero Animation:RUHHs_Theo_SKL.RUHHs_Theo_DIEA Frames:0
AnimationSound = Sound:BodyFallGenericNoArmor Animation:RUHHs_Theo_SKL.RUHHs_Theo_DIEA Frames:4
AnimationSound = Sound:BodyFallSoldier Animation:RUHHs_Theo_SKL.RUHHs_Theo_DIEA Frames:42
;////end---Tomalf, mounted Boromir           
    End

    Behavior = LargeGroupAudioUpdate ModuleTag_LGAU            ; Tie into LargeGroupAudio system
        Key = Humanoid_Male Man Man_Male Unit Infantry Hero
        ;UnitWeight = 2
    End


    ; *** ENGINEERING Parameters ***

    RadarPriority = UNIT
    KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS INFANTRY PATH_THROUGH_EACH_OTHER SCORE HERO ARMY_SUMMARY HEAVY_MELEE_HITTER
    PathfindDiameter = 40.0
    CamouflageDetectionMultiplier = CAMOUFLAGE_DETECTION_DISTANCE_LONG


;    Body = DelayedDeathBody ModuleTag_DelayedDeathBody ;DelayedDeath is a variation of RespawnBody
;        CheerRadius                 = EMOTION_CHEER_RADIUS
;        MaxHealth                = BOROMIR_HEALTH        ; BALANCE
;        DelayedDeathTime            = 10000                        ; Amount of time spent still fighting after being killed
;        DelayedDeathPrerequisiteUpgrade        = Upgrade_BoromirLastStand    ; Need this upgrade to be able to delay my death.
;        InvulnerableFX                = FX_BoromirLastStand
;
;        PermanentlyKilledByFilter        = NONE        ;Who kills me permanently?
;          DodgePercent                  = HERO_DODGE_PERCENT               
;    End
;
    Body = ActiveBody ModuleTag_ActiveBody
        CheerRadius                 = EMOTION_CHEER_RADIUS
        MaxHealth                    = BOROMIR_EM_HEALTH        ; BALANCE
         DodgePercent                  = HERO_DODGE_PERCENT               
    End
;   
;    Behavior = UnpauseSpecialPowerUpgrade ModuleTag_TheodenLeadership
;        SpecialPowerTemplate = SpecialAbilityFakeLeadership
;        TriggeredBy = Upgrade_BoromirLastStand
;    End
;
;    Behavior = SpecialPowerModule ModuleTag_TheodenLeadershipUpdate   
;        SpecialPowerTemplate      = SpecialAbilityFakeLeadership
;        UpdateModuleStartsAttack  = No
;        StartsPaused = Yes
;    End

    Behavior = AutoHealBehavior ModuleTag_BoromirHealing
        StartsActive = Yes
        HealingAmount = HERO_HEAL_AMOUNT
        HealingDelay = 1000
        StartHealingDelay = HERO_HEAL_DELAY
        HealOnlyIfNotInCombat = Yes
    End
   
       
    Behavior = LifetimeUpdate ModuleTag_LifeTime            ; Used after 'death' to continue for a certain time before really dying.
        WaitForWakeUp = Yes
    End
    ;////start---Tomalf, mounted Boromir 
    Behavior = NotifyTargetsOfImminentProbableCrushingUpdate ModuleTag_NotifyCrushScan
End
    ;////end---Tomalf, mounted Boromir 
    Behavior = StancesBehavior ModuleTag_StancesBehavior
        StanceTemplate = Hero
    End
   
    #include "..\includes\CaptureBuilding.inc"
   
    Behavior = AIUpdateInterface ModuleTag_03
        AutoAcquireEnemiesWhenIdle    = Yes ATTACK_BUILDINGS
        MoodAttackCheckRate            = 500
        AILuaEventsList                = BoromirFunctions
    End

    Behavior = EmotionTrackerUpdate    Module_EmotionTracker
        TauntAndPointDistance                = 300
        TauntAndPointUpdateDelay            = 10000
        AddEmotion            =    Terror_Base
        AddEmotion            =    Doom_Base
        //    AddEmotion            =   BraceForBeingCrushed_Base
        AddEmotion            =    UncontrollableFear_Base
        //    AddEmotion            =    FearIdle_Base
        //    AddEmotion            =    FearBusy_Base
        AddEmotion            =    Point_Base
        AddEmotion            =    Taunt_Base
         AddEmotion            =    CheerIdle_Base
        AddEmotion            =    CheerBusy_Base
        //    AddEmotion            =    HeroCheerIdle_Base
        //    AddEmotion            =    HeroCheerBusy_Base
        AddEmotion            =    Alert_Base
        AddEmotion            =    CheerForAboutToCrush_Base
    End
   
    LocomotorSet
        Locomotor = HeroHumanLocomotor
        Condition = SET_NORMAL
        Speed     = NORMAL_GOOD_HERO_SPEED
    End
   
    Behavior = AutoAbilityBehavior ModuleTag_AutoAbilityBehavior
    End       
   
    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
   
;////start---Tomalf, mounted Boromir   
    Behavior = RousingSpeechUpdate ModuleTag_11
SpecialPowerTemplate    = SpecialAbilityRousingSpeech
RequiredConditions = MOUNTED
StartAbilityRange = 1.0
UpdateInterval = 500
ApproachRequiresLOS = No
BonusRadius = 250
SpeechDuration          = 2500
LeaderFX = FX_TheodenSpeechFX
FollowerFX = FX_TheodenFollowerFX
CreateWave = Yes
WaveWidth = 50
ModifierName = RohanCharge
End
   
    LocomotorSet
Locomotor = HeroHorseLocomotor
Condition = SET_MOUNTED
Speed     = NORMAL_CAVALRY_HORDE_SPEED
End
;////end---Tomalf, mounted Boromir   

    Behavior = AttributeModifierUpgrade ModuleTag_ElvenGiftBonus
        TriggeredBy = Upgrade_ElvenGift
        AttributeModifier = SpellBookElvenGifts
    End
   
    Behavior = DualWeaponBehavior ModuleTag_13
        SwitchWeaponOnCloseRangeDistance = 161
    End

    Behavior = PhysicsBehavior ModuleTag_04
        GravityMult = 1.0
        ;ShockStandingTime = 2533 ;msec
        ShockStandingTime        = 4000    ;msec
    End
   
    Behavior = SlowDeathBehavior ModuleTag_05
        DeathTypes = ALL
        SinkDelay = 3000
        SinkRate = 0.40     ; in Dist/Sec
        DestructionDelay = 8000
        Sound = INITIAL BoromirVoiceDie
;        - Where does this stuff go? -
;        UnpackTime              = 2000
;        PreparationTime         = 1   
;        PersistentPrepTime      = 4000
;        PackTime                = 2000
;        WhichSpecialWeapon = 1
    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
   
    Behavior = UnpauseSpecialPowerUpgrade ModuleTag_EnableHorn
        SpecialPowerTemplate        = SpecialAbilityHornOfGondor
        TriggeredBy                    = Upgrade_ObjectLevel2
    End
    Behavior = SpecialPowerModule ModuleTag_HornStarter                       
        SpecialPowerTemplate        = SpecialAbilityHornOfGondor
        UpdateModuleStartsAttack    = Yes
        AntiCategory                = LEADERSHIP
        AttributeModifier            = BoromirGondorHornAntiCategory        ; Used for the anti category duration only.
        AttributeModifierRange        = 100.0
        StartsPaused                = Yes                                ; obtained on level 2
    End
    Behavior = ModelConditionSpecialAbilityUpdate ModuleTag_HornUpdate   
        SpecialPowerTemplate    = SpecialAbilityHornOfGondor
;        StartAbilityRange       = 2.0


        UnpackTime              = 1700                                    ; Drawing the horn
        PreparationTime         = 1                                        ; nothing
        PersistentPrepTime      = 1600                                    ; Blowing
        PackTime                = 1666                                    ; Putting horn away

;    PackSound               =
;    UnpackSound             =
;    TriggerSound            =
;    PrepSoundLoop           =
        AwardXPForTriggering    = 0
    End
;------------ Rider Horse -----------------------------------------------   
;////start---Tomalf, mounted Boromir   
    Behavior = UnpauseSpecialPowerUpgrade ModuleTag_UnpauseHorseToggle
SpecialPowerTemplate = SpecialAbilityToggleMounted
TriggeredBy = Upgrade_ObjectLevel2
End

  Behavior = SpecialPowerModule ModuleTag_HorseToggleStarter
  SpecialPowerTemplate      = SpecialAbilityToggleMounted
  UpdateModuleStartsAttack  = Yes
  ;InitiateSound           =
  StartsPaused = Yes
  End

Behavior = ToggleMountedSpecialAbilityUpdate ModuleTag_HorseToggle
  SpecialPowerTemplate    = SpecialAbilityToggleMounted
     ;   MountedTemplate            = GondorBoromirCavalry
  UnpackTime              = 2000
  PreparationTime         = 1 
  PersistentPrepTime      = 250
  PackTime                = 2000
 
  OpacityTarget = .3 ; How see-thru to be at peak of change
   
 ;    PackSound               =
 ;    UnpackSound             =
 ;    TriggerSound            =
 ;    PrepSoundLoop           =
  AwardXPForTriggering    = 0
End
;////end---Tomalf, mounted Boromir   
;------------ Rider Horse ----------------------------------------------- 

    ;------------ CAPTAIN OF GONDOR -----------------------------------------------
   
    Behavior = UnpauseSpecialPowerUpgrade ModuleTag_KingsFavorEnabler
        SpecialPowerTemplate    = SpecialAbilityKingsFavor
        TriggeredBy                = Upgrade_ObjectLevel7
    End
    Behavior = SpecialPowerModule ModuleTag_KingsFavorSpecialPowerModule
        SpecialPowerTemplate        = SpecialAbilityKingsFavor
        StartsPaused                = Yes
        UpdateModuleStartsAttack    = Yes
        InitiateSound                = BoromirVoiceCaptainOfGondor
    End
    Behavior = LevelGrantSpecialPower ModuleTag_KingsFavor
        SpecialPowerTemplate        = SpecialAbilityKingsFavor
        UnpackingVariation            = 2
        StartAbilityRange            = 200.0
        LevelFX                        = FX_LevelUp
        Experience                    = 50
        RadiusEffect                = 150
        AcceptanceFilter            = KINGSFAVOR_OBJECTFILTER
        UnpackTime                    = 2000
        PreparationTime                = 1   
        FreezeAfterTriggerDuration    = 2000    ; Hold AI for this long after we fire.       
    End   
       
;--------------------- Start Leadership bonus ---------------
    Behavior = AttributeModifierAuraUpdate ModuleTag_BoromirLeadership
        StartsActive    = No ;If no, requires upgrade to turn on.
        BonusName        = GenericHeroLeadership
        TriggeredBy        = Upgrade_ObjectLevel5
        RefreshDelay    = 2000
        Range            = 200
        AntiCategory    = BUFF
        ObjectFilter    = GENERIC_BUFF_RECIPIENT_OBJECT_FILTER
    End   

    Behavior = UnpauseSpecialPowerUpgrade ModuleTag_UnpauseLeadership
        SpecialPowerTemplate = SpecialAbilityFakeLeadership
        TriggeredBy = Upgrade_ObjectLevel5
    End
    Behavior = SpecialPowerModule ModuleTag_BoromirLeadershipUpdate   
        SpecialPowerTemplate      = SpecialAbilityFakeLeadership
        UpdateModuleStartsAttack  = No
        StartsPaused = Yes
    End   
;--------------------- End Leadership bonus ---------------

;--------------------- Blade Master bonus ---------------
    Behavior             = UnpauseSpecialPowerUpgrade ModuleTag_AragornBladeMasterEnabler
        SpecialPowerTemplate     = SpecialAbilityAragornBladeMaster
        TriggeredBy         = Upgrade_ObjectLevel8
    End

      Behavior             = SpecialPowerModule ModuleTag_AragornBladeMasterStarter                ; SpecialAbility is a SpecialPower, SpecialPower is anyting special
        SpecialPowerTemplate    = SpecialAbilityAragornBladeMaster
        StartsPaused        = Yes
    End

    Behavior             = HeroModeSpecialAbilityUpdate ModuleTag_AragornBladeMasterUpdate   ; So the difference in SpecialAbility is that it takes timing from this Update, instead of simply firing.
        SpecialPowerTemplate    = SpecialAbilityAragornBladeMaster
        HeroAttributeModifier    = AragornBladeMaster
        HeroEffectDuration    = 30000 ; this should sync with the auto ability delay re-fire time in commandButtons.ini
        UnpackTime              = 1 ; insant unpack
        TriggerSound        = AragornBladeMaster
    End
;--------------------- Blade Master bonus ---------------
   
    ;///////////////////
    ; AISpecialPowers
    ;///////////////////

    Behavior = AISpecialPowerUpdate BoromirHornOfGondorAI
        CommandButtonName = Command_SpecialAbilityHornOfGondor
        SpecialPowerAIType = AI_SPECIAL_POWER_BASIC_SELF_BUFF
    End
   
    Behavior = AISpecialPowerUpdate SpecialPowerBoromirGiveXPAoE
        CommandButtonName = Command_SpecialAbilityCaptainOfGondorBoromir
        SpecialPowerAIType = AI_SPECIAL_POWER_GIVEXP_AOE
        SpecialPowerRadius = 30.0
    End
   
   Behavior = AISpecialPowerUpdate AragornBladeMasterAI
CommandButtonName = Command_SpecialAbilityBladeMasterBoromir
SpecialPowerAIType = AI_SPECIAL_POWER_BASIC_SELF_BUFF
End
   
;////start---Tomalf, mounted Boromir
Behavior = AISpecialPowerUpdate ToggleMountedAI
CommandButtonName = Command_ToggleMounted
SpecialPowerAIType = AI_SPECIAL_POWER_TOGGLE_MOUNTED
End
;////end---Tomalf, mounted Boromir   

    Geometry = CYLINDER
    GeometryMajorRadius = 8.0
    GeometryMinorRadius = 8.0
    GeometryHeight = 19.2
    GeometryIsSmall = Yes
  Shadow = SHADOW_DECAL
  ShadowSizeX = 20;
  ShadowSizeY = 20;
  ShadowTexture = ShadowI;

End
;;///////////////////////////////////////////////////////////////////////////////////
;;///////////////////////////////////////////////////////////////////////////////////

ChildObject GondorBoromirCavalry GondorBoromirParent

Draw = W3DScriptedModelDraw ModuleTag_W3DModelDrawInWorldBuilder
;When in Worldbuilder, show the mounted version of Theoden!

  OkToChangeModelColor = Yes

DefaultModelConditionState
Model = None
End
       
        RandomTexture = gubaramir.tga 0 gufaramir.tga
        RandomTexture = gubrmirhrse.tga 0 gufrmirhrse.tga
        RandomTexture = gubrmirshield.tga 0 gufrmirshield.tga
       
ModelConditionState = WORLD_BUILDER
Model = GUFrmrHrs_SKN
End
End

Behavior = ToggleMountedSpecialAbilityUpdate ModuleTag_HorseToggle
  SpecialPowerTemplate    = SpecialAbilityToggleMounted
  TriggerInstantlyOnCreate = Yes  ;Instantly puts Theoden on a horse.
; MountedTemplate            = GondorBoromirParent
        UnpackTime              = 2000
  PreparationTime         = 1 
  PersistentPrepTime      = 250
  PackTime                = 2000
  OpacityTarget = .3 ; How see-thru to be at peak of change
  AwardXPForTriggering    = 0
End

Body = RespawnBody ModuleTag_RespawnBody
CheerRadius = EMOTION_CHEER_RADIUS
MaxHealth          = BOROMIR_EM_HEALTH  ;BALANCE Gimli Health
PermanentlyKilledByFilter = NONE ;Who kills me permanently?
    DodgePercent      = 80%
End

Behavior = RespawnUpdate ModuleTag_RespawnUpdate
DeathAnim = DYING ;Model condition to play when killed-to-respawn
DeathFX = FX_HeroDieToRespawn ;FXList to play when killed-to-respawn
DeathAnimationTime = 4100 ;How long DeathAnim will take.
InitialSpawnFX = FX_HeroInitialSpawn
RespawnAnim = LEVELED ;Animation to play when respawning.
RespawnFX = FX_HeroRespawn ;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.

;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:BOROMIR_EM_BUILDCOST Time:BOROMIR_EM_RESPAWNTIME Health:100% ;DEFAULT VALUES
End

End

;;///////////////////////////////////////////////////////////////////////////////////
;;///////////////////////////////////////////////////////////////////////////////////

ChildObject GondorBoromir_EM GondorBoromirParent

    Body = ActiveBody ModuleTag_Body
        MaxHealth             = BOROMIR_EM_HEALTH
           DodgePercent          = 80%   
    End

       Behavior             = CreateObjectDie ModuleTag_SpawnVOLKTomb
           DeathTypes            = ALL
           CreationList        = OCL_SpawnGondorBoromir
    End

    Behavior = AnnounceBirthAndDeathBehavior ModuleTag_AnnounceBirthAndDeathBehavior
    End
   
    #include "includes\_LevelToGrant.inc"

End

;;///////////////////////////////////////////////////////////////////////////////////
;;///////////////////////////////////////////////////////////////////////////////////

ChildObject GondorBoromir GondorBoromirParent

    Body = RespawnBody ModuleTag_RespawnBody
        CheerRadius                 = EMOTION_CHEER_RADIUS
        MaxHealth                     = BOROMIR_EM_HEALTH  ;BALANCE Gimli Health
        PermanentlyKilledByFilter    = NONE        ;Who kills me permanently?
           DodgePercent                  = 80%   
    End

    Behavior = RespawnUpdate ModuleTag_RespawnUpdate
        DeathAnim                    = DYING                    ;Model condition to play when killed-to-respawn
        DeathFX                        = FX_HeroDieToRespawn    ;FXList to play when killed-to-respawn
        DeathAnimationTime            = 4100                    ;How long DeathAnim will take.
        InitialSpawnFX                = FX_HeroInitialSpawn
        RespawnAnim                    = LEVELED                ;Animation to play when respawning.
        RespawnFX                    = FX_HeroRespawn        ;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.
       
        ;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:BOROMIR_EM_BUILDCOST        Time:BOROMIR_EM_RESPAWNTIME        Health:100%        ;DEFAULT VALUES
    End
   
    #include "includes\_LevelToGrant.inc"

End


--- Ende Code ---

CMG:
You cannot do this by just changing some code. You have to create a model for a mounted Boromir and link the skin correctly. Otherwise it won't work.

TE_:
Hi,

thank you for your reply.
You need a new model for the fade in/out effect during the transition? As I wrote, the horse toggle works, I have use the horse model from Faramir and just applied a new textures since the characters are similar, looks nice. The only things that is not working is the fade in/out effect for Boromi on foot model when he change to Boromir on horse. The transition should go to a fade out the Boromir on foot model and Fade in the Boromir on horse model. The Boromir on horse fade effect works but the fade out effect of Boromir on foot not, the model chest fade out instantly and after a second the horse model fades in.

I am not sure if I described it now better or I need the model for the fade effect anyway but wanted to clarify myself a bit more :).

thx, Tomas

FG15:
The problem might be due to the 2 different skeletons that are used maybe making the mounted form its own object could work.

Also, can you show us your ToggleMountedSpecialAbil ityUpdate, because the draw module itself looked correctly on the first look.

And to make code better readable there is a format for that:
--- Code: ---[code]
--- Ende Code ---

TE_:
Hi,

honestly, I cant find it: ToggleMountedSpecialAbil ityUpdate, I have used the same code as it is by Faramir and while I was trying to fix this, I have searched all the files for this entry but found it only in the characters *.ini files and game.dat. Hence, I deduced is inside game.dat, I can be surely wrong.

sorry, for the spoiler. I wanted to use the spolier and the code tage inside the spoiler to make the post shorter but it somehow didnt worked, I have fixed it.

tomas

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln