Jump to content


Photo

Nazgûls "Special Extended Edition"


  • Please log in to reply
678 replies to this topic

#641 Rob38

Rob38

    Believer of Hope

  • Hosted
  • 3,567 posts
  • Location:USA
  • Projects:Helm's Deep Last Hope
  •  One who is not afraid of new challenges

Posted 06 September 2008 - 02:10 AM

Well, if you have a map that spawns individual units, than you may need it so that one unit can't purchase upgrades like banner carriers or something like that. But yes, if a unit is in a horde, the horde commandset is what is read. :p

signature_group1.gif

 

16821.png


#642 Nazgûl

Nazgûl

    S.E.E. Team Leader

  • Hosted
  • 10,582 posts
  • Location:Sweden
  • Projects:BFME2 - Nazgûl's Special Extended Edition
  •  Veteran

Posted 06 September 2008 - 03:05 AM

Ok cool, just making sure I'm on top of my thoughts... so to speak :p

Anyway, next little issue... Added Dwarven Miners tonight, and as far as I can see I've done everything the way I used to, but when they spawn from the mines, they form a chunk of what looks like a single unit, instead of line up like the Warriors (Guardians) that I based them on. When I select them, the ARE individual units too, despite that the CommandButton is connected to the horde? I can't think of anything I missed, and this isn't exactly the first time I add a unit/battalion either, so I'm confused? (again) :p

Edited by Nazgûl, 06 September 2008 - 12:29 PM.

// C}{riZpc_punch.gif
"Do not come between the Nazgûl and his mod!"
SEE_Banner_2008.jpg
SEE-Team_Leader.jpg
----------------------------------------------------------------------------------------------------
>>>>>>>>>>>>>>>>>>>>>>> I S.E.E. YOU! <<<<<<<<<<<<<<<<<<<<<<<
----------------------------------------------------------------------------------------------------


#643 SovietSoldier

SovietSoldier

    Mapper,Begginer Modeler and Animator

  • Members
  • 323 posts
  • Projects:World Builder Battle Of the Crater Map BFME2

Posted 06 September 2008 - 03:37 AM

um they all combine together?move them around,maybe then they would have formation,and about formation,maybe you didn't arrange formation.
What is the motherland,when you know you weren't born of land?
Posted Image
Posted Image

#644 Nazgûl

Nazgûl

    S.E.E. Team Leader

  • Hosted
  • 10,582 posts
  • Location:Sweden
  • Projects:BFME2 - Nazgûl's Special Extended Edition
  •  Veteran

Posted 06 September 2008 - 12:31 PM

I did everything (AFAIK) they way I always do it. And since they are based on the Guardians, and I merely changed the models, they should do what the Guardians do... But strangely enough, they don't =p

EDIT: Wow, a new weird discovery... no wonder the Miners don't work - the Guardiands don't work either :p I haven't really been playing with Dwarves since I got the last WiP from Sûl, and I guess something happened in that version that Sul forgot to finish/fix... =s

Edited by Nazgûl, 06 September 2008 - 01:00 PM.

// C}{riZpc_punch.gif
"Do not come between the Nazgûl and his mod!"
SEE_Banner_2008.jpg
SEE-Team_Leader.jpg
----------------------------------------------------------------------------------------------------
>>>>>>>>>>>>>>>>>>>>>>> I S.E.E. YOU! <<<<<<<<<<<<<<<<<<<<<<<
----------------------------------------------------------------------------------------------------


#645 Lauri

Lauri

    Old man Lauri

  • Hosted
  • 10,438 posts
  • Location:Norway
  • Projects:The 4th Age
  •  The very worst T3A Team Chamber Member

Posted 06 September 2008 - 12:58 PM

post the horde code..
You've most likely forgotten a single link to the Guardians :p

And for LUA...
Yes, you did it correct... Don't know what's the problem then..

T4A_Logo_-_article.png

The 4th Age version 0.8 has been released: Link


#646 Nazgûl

Nazgûl

    S.E.E. Team Leader

  • Hosted
  • 10,582 posts
  • Location:Sweden
  • Projects:BFME2 - Nazgûl's Special Extended Edition
  •  Veteran

Posted 06 September 2008 - 01:03 PM

LUA: yeah, really strange... :p I'll leave that for later.

Horde: As aparently the Guardians have the same error (won't line up as a battalion either) ^ I'll post that code first :p

;//------------------------------------------------------------------------------
Object DwarvenGuardianHorde

; This is required for garrisoned objects - please put in all objects.
	ButtonImage		= WOR_Guardian
	SelectPortrait	= UPDwarvenGuardian

	Draw = W3DScriptedModelDraw ModuleTag_W3DModelDraw
	DependencySharedModelFlags = USER_8 EMOTION_ALERT EMOTION_MORALE_HIGH EMOTION_MORALE_LOW EMOTION_AFRAID EMOTION_COWER EMOTION_TERROR EMOTION_LOOK_TO_SKY SELECTED
		DefaultModelConditionState
			Model = None;InvisHrdeTmp5x2
		End

		ModelConditionState = HORDE_EMPTY
			Model = None
		End		
		
		ModelConditionState = WORLD_BUILDER
			Model = HordeMarkEUDFG
		End		
	End
	
	Side = Dwarves
	EditorSorting = UNIT
	EmotionRange = 240
	DisplayName = OBJECT:HordeDwarvenGuardian
	DisplayNameStrategic = CONTROLBAR:LW_Unit_DwarvenGuardianHorde
	DescriptionStrategic = CONTROLBAR:LW_ToolTip_DwarvenGuardianHorde
		
	WeaponSet
		Conditions = None 
		Weapon = PRIMARY	NormalMeleeHordeRangefinder
	End

; *** AUDIO Parameters ***;
; Note: Don't put voice parameters here -- they will be ignored. Voice play requests
; are always passed through to members
	#include "..\..\..\includes\StandardHordeEvaEvents.inc"

	UnitSpecificSounds
		VoiceDesperateAttack  = GondorSoldierVoiceDesperateCharge 
	End

	BuildCost = M_DWARVEN_GUARDIAN_BUILDCOST
	BuildTime = M_DWARVEN_GUARDIAN_BUILDTIME	  
	VisionRange = M_DWARVEN_GUARDIAN_HORDE_VISION_RANGE
	ShroudClearingRange = M_DWARVEN_GUARDIAN_SHROUD_RANGE
	VisionSide = 50%
	VisionRear = 25%
	
; MaxVisionBonusPercent = 300%
; VisionBonusTestRadius = 200
; VisionBonusPercentPerFoot = 1.0%
	CommandPoints = 60
	
	FormationWidth = 2; Width it occupies in formations. Current choices are 1 or 2.
	FormationDepth = 1; Depth it occupies in formations. Current choices are 1 or 2.
	
	CrushableLevel = 0 ;What am I?:		0 = for infantry, 1 = for trees, 2 = general vehicles
	CrusherLevel = 1 
	
	CrushOnlyWhileCharging = YES; // the guardian is only supposed to crush during his special charge ability
	
	MinCrushVelocityPercent = 50%; Has to be moving at least xx% of full speed
	CrushDecelerationPercent = 90%; Lose xx% max velocity when crushing -- thus they only crush 1 row of infantry
	
	CrushKnockback = 40 ; how hard we knock back crushed units.
	CrushZFactor = 1.0 ; How much we knock upwards.

  TransportSlotCount = M_TRANSPORTSLOTCOUNT_SMALL_HORDE
	KindOf = SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT INFANTRY HORDE MELEE_HORDE NOTIFY_OF_PREATTACK ARMY_SUMMARY LARGE_RECTANGLE_PATHFIND;;UNATTACKABLE 
	
	ThreatLevel = M_DWARVEN_GUARDIAN_HORDE_THREAT
	ThreatBreakdown DwarvenGuardianHorde_DetailedThreat
		AIKindOf = INFANTRY
	End
	
	Body = ImmortalBody ModuleTag_ImmortalBody
		MaxHealth = 1
	End
	
	#include "..\..\..\includes\CaptureBuilding.inc"
	
	Behavior = StancesBehavior ModuleTag_StancesBehavior
	StanceTemplate = FighterHorde
  End
	
	Behavior = HordeAIUpdate ModuleTag_HordeAIUpdate
		AutoAcquireEnemiesWhenIdle	= Yes ATTACK_BUILDINGS
		MoodAttackCheckRate			= 500
		MaxCowerTime				= 5000
		MinCowerTime				= 3000

		CanAttackWhileContained		= Yes ; Can fire out of garrisoned building
		AILuaEventsList				= InfantryFunctions; 
		AttackPriority				= AttackPriority_Infantry
	End

	Behavior = HordeContain ModuleTag_HordeContain
		FrontAngle = 270
		FlankedDelay = 2000
		ObjectStatusOfContained			= 
		InitialPayload					= DwarvenGuardian 15
		Slots							= 15
		PassengerFilter					= NONE +INFANTRY
		ShowPips						= No
		ThisFormationIsTheMainFormation = Yes;//Used to determine which armorset to use (and anything else we want!)
		RandomOffset = X:0 Y:0
		
		MeleeBehavior = Amoeba
	End					

	; Banner Carrier info		
		BannerCarriersAllowed	= DwarvenGuardianBanner;DwarvenBanner									;// types of units that are allowed as banner carriers
		BannerCarrierPosition	= UnitType:DwarvenGuardian	Pos:X:40.0 Y:0.0		// (DEFAULT) position of banner carrier
		
		RankInfo = RankNumber:1 UnitType:DwarvenGuardian Position:X:20 Y:0			Position:X:20 Y:20				Position:X:20 Y:-20				Position:X:20 Y:40				Position:X:20 Y:-40 
		RankInfo = RankNumber:2 UnitType:DwarvenGuardian Position:X:0 Y:0 Leader 1 0	Position:X:0 Y:20 Leader 1 1	Position:X:0 Y:-20 Leader 1 2	Position:X:0 Y:40 Leader 1 3	Position:X:0 Y:-40 Leader 1 4
		RankInfo = RankNumber:3 UnitType:DwarvenGuardian Position:X:-20 Y:0 Leader 2 0	Position:X:-20 Y:20 Leader 2 1	Position:X:-20 Y:-20 Leader 2 2	Position:X:-20 Y:40 Leader 2 3	Position:X:-20 Y:-40 Leader 2 4
	; BannerCarrierPosition	= UnitType:DwarvenGuardian	Pos:X:70.0 Y:0.0	;// (DEFAULT) position of banner carrier
		
	; RankInfo = RankNumber:1 UnitType:DwarvenGuardian Position:X:50 Y:0		Position:X:50 Y:20		Position:X:50 Y:-20		Position:X:50 Y:40		Position:X:50 Y:-40 
	; RankInfo = RankNumber:2 UnitType:DwarvenGuardian Position:X:30 Y:0 Leader 1 0	Position:X:30 Y:20 Leader 1 1	Position:X:30 Y:-20 Leader 1 2	Position:X:30 Y:40 Leader 1 3	Position:X:30 Y:-40 Leader 1 4
	; RankInfo = RankNumber:3 UnitType:DwarvenGuardian Position:X:10 Y:0 Leader 2 0	Position:X:10 Y:20 Leader 2 1	Position:X:10 Y:-20 Leader 2 2	Position:X:10 Y:40 Leader 2 3	Position:X:10 Y:-40 Leader 2 4
		
		
	;// Positions for 5
		
		RanksToReleaseWhenAttacking		= 1 2 3;Modified by Sûlherokhh (was '1')
		
		MeleeAttackLeashDistance = 1; How far the hordes can move from the center of the horde when melee attacking.				
		BackUpMinDelayTime				= 1	;// The minimum amount of time to delay before backing up
		BackUpMaxDelayTime				= 3000;// The maximum amount of time to delay before backing up
		BackUpMinDistance				= 1	;// The minimum number of cells to backup
		BackUpMaxDistance				= 3	;// The maximum number of cells to backup
		BackupPercentage				= 80%;// The amount of chance that a unit will back up.
	End

	Behavior = PhysicsBehavior ModuleTag_PhysicsBehavior
		GravityMult = 1.0
	End
	
	Behavior = CommandButtonHuntUpdate ModuleTag_CommandButtonHuntUpdate
	End
  
	Behavior = HordeNotifyTargetsOfImminentProbableCrushingUpdate ModuleTag_NotifyCrushScan
		ScanWidth = 60.0; A little less than the width of the horde (which is 2 * 35 = 70)
	End

  Behavior = EmotionTrackerUpdate	Module_EmotionTracker
		TauntAndPointDistance		=	M_INFANTRY_TAUNT_POINT_RADIUS	; max distance to taunted/pointed objet
		TauntAndPointUpdateDelay	=	1000	; how often scan (milliseconds)
		TauntAndPointExcluded		=	NONE
 		AfraidOf					=	M_EMOTION_AFRAIDOF_OBJECTFILTER
		AlwaysAfraidOf				=	M_EMOTION_ALWAYS_AFRAIDOF_OBJECTFILTER
 		PointAt						=	M_EMOTION_POINTAT_OBJECTFILTER
		HeroScanDistance		=	150
		FearScanDistance		=	M_INFANTRY_FEAR_SCAN_RADIUS

		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	 = NormalChargeMeleeHordeLocomotor
		Condition	 = SET_NORMAL
		Speed		 = M_NORMAL_GOOD_INFANTRY_HORDE_SPEED
	End
	
	LocomotorSet
		Locomotor	 = ScaredMeleeHordeLocomotor
		Condition	 = SET_SCARED
		Speed		 = M_NORMAL_GOOD_INFANTRY_HORDE_SPEED
	End
	
	Behavior = ProductionUpdate ProductionUpdateModuleTag
		GiveNoXP = Yes
	End

	Behavior = LevelUpUpgrade ModuleTag_CreateLevelUpUpgrade
		TriggeredBy = Upgrade_DwarvenBasicTraining
		LevelsToGain = 1
		LevelCap = 2
	End
	
	Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality1
		TriggeredBy = Upgrade_DwarvenSiegeHammer
	End
	
	Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality2
		TriggeredBy = Upgrade_DwarvenForgedBlades
	End
	
	Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality3
		TriggeredBy = Upgrade_DwarvenMithrilMail
	End

	Behavior = PickupStuffUpdate ModuleTag_PickupStuffUpdate
		SkirmishAIOnly = Yes
		StuffToPickUp = NONE +CRATE
		ScanRange = 200
		ScanIntervalSeconds = 0.5
	End

;;; NEW DWARVEN CHARGE ABILITY;;;
	Behavior = UnpauseSpecialPowerUpgrade ModuleTag_ChargeUnpause
		SpecialPowerTemplate	  = SpecialAbilityDwarvenCharge
		TriggeredBy				  = Upgrade_ObjectLevel2
	End
	
  Behavior = SpecialPowerModule ModuleTag_ChargeStarter					  
		SpecialPowerTemplate	  = SpecialAbilityDwarvenCharge
		UpdateModuleStartsAttack  = Yes
		StartsPaused			  = Yes
	End
	#include "..\..\..\includes\DwarvenChargeUpdate.inc"
		
	Behavior = AutoAbilityBehavior ModuleTag_AutoAbilityBehavior
		SpecialAbility = SpecialAbilityDwarvenCharge
		MaxScanRange				= 140
		Query						= 1 ALL ENEMIES -STRUCTURE
	End

	CommandSet = DwarvenGuardianHordeCommandSet
	
	Behavior = CommandSetUpgrade ModuleTag_DwarvenGuardianHordeBladesCommandSet
		TriggeredBy		= Upgrade_DwarvenForgedBlades
		ConflictsWith	= Upgrade_DwarvenSiegeHammer
		CommandSet		= DwarvenGuardianHordeBladesCommandSet_SEE
	End
;;
	Behavior = CommandSetUpgrade ModuleTag_DwarvenGuardianHordeSiegeCommandSet
		TriggeredBy		= Upgrade_DwarvenSiegeHammer
		ConflictsWith	= Upgrade_DwarvenForgedBlades
		CommandSet		= DwarvenGuardianHordeSiegeCommandSet_SEE
	End

	/////////////////////
	// AISpecialPowers
	/////////////////////
	
	#include "..\..\..\..\includes\Battlestance_SEE.inc"
	
	Behavior = AISpecialPowerUpdate DwarfGuardianCharge
		CommandButtonName = Command_DwarvenGuardianChargeAttack
		SpecialPowerAIType = AI_SPECIAL_POWER_CHARGE
	End

	Geometry = BOX
	GeometryMajorRadius = 30.0
	GeometryMinorRadius = 45.0
	GeometryHeight = 20.0
	GeometryIsSmall = No
	
	
; *** AUTO RESOLVE DATA *** 
	AutoResolveUnitType = AutoResolveUnit_Soldier
	AutoResolveCombatChain = AutoResolve_SoldierCombatChain
	
	AutoResolveBody = AutoResolve_DwarvenGuardianHordeBody
	
	AutoResolveArmor
		RequiredUpgrades = Upgrade_DwarvenMithrilMail
		Armor = AutoResolve_DwarvenGuardianHeavyArmor
	End

	AutoResolveArmor
		ExcludedUpgrades = Upgrade_DwarvenMithrilMail
		Armor = AutoResolve_DwarvenGuardianArmor
	End

	AutoResolveWeapon
		RequiredUpgrades = Upgrade_DwarvenForgedBlades
		Weapon = AutoResolve_DwarvenGuardianUpgradedWeapon
	End

	AutoResolveWeapon
		ExcludedUpgrades = Upgrade_DwarvenForgedBlades
		Weapon = AutoResolve_DwarvenGuardianWeapon
	End
	
	WorldMapArmoryUpgradesAllowed = Upgrade_DwarvenBasicTraining Upgrade_DwarvenForgedBlades Upgrade_DwarvenMithrilMail
End

// C}{riZpc_punch.gif
"Do not come between the Nazgûl and his mod!"
SEE_Banner_2008.jpg
SEE-Team_Leader.jpg
----------------------------------------------------------------------------------------------------
>>>>>>>>>>>>>>>>>>>>>>> I S.E.E. YOU! <<<<<<<<<<<<<<<<<<<<<<<
----------------------------------------------------------------------------------------------------


#647 Nazgûl

Nazgûl

    S.E.E. Team Leader

  • Hosted
  • 10,582 posts
  • Location:Sweden
  • Projects:BFME2 - Nazgûl's Special Extended Edition
  •  Veteran

Posted 06 September 2008 - 11:16 PM

Some progress...

The Guardians work again. I had to remove the Horde code for the DwarvenMiners and put it into the DwarvenMiner unit ini instead. That made the Guardians work as normal again. So aparently, there was some kind of conflict there. Now, my next step was to rename the DwarvenMiners into DwarvenMiners_SEE since there is another unit in the Obsolete.ini that is called the same (that I renamed to DwarvenMiner_OBSOLETE). So I changed it's name back and renamed my miner unit, in both the unit ini and the horde ini off course. But the darn miners STILL won't line up as a battalion/horde, but as single individual units? Maaan, what's going on? :mellow:

// C}{riZpc_punch.gif
"Do not come between the Nazgûl and his mod!"
SEE_Banner_2008.jpg
SEE-Team_Leader.jpg
----------------------------------------------------------------------------------------------------
>>>>>>>>>>>>>>>>>>>>>>> I S.E.E. YOU! <<<<<<<<<<<<<<<<<<<<<<<
----------------------------------------------------------------------------------------------------


#648 Dr.Kirk

Dr.Kirk
  • Members
  • 97 posts
  • Projects:SEE - one mod to rule them all

Posted 06 September 2008 - 11:53 PM

Some progress...

The Guardians work again. I had to remove the Horde code for the DwarvenMiners and put it into the DwarvenMiner unit ini instead. That made the Guardians work as normal again. So aparently, there was some kind of conflict there. Now, my next step was to rename the DwarvenMiners into DwarvenMiners_SEE since there is another unit in the Obsolete.ini that is called the same (that I renamed to DwarvenMiner_OBSOLETE). So I changed it's name back and renamed my miner unit, in both the unit ini and the horde ini off course. But the darn miners STILL won't line up as a battalion/horde, but as single individual units? Maaan, what's going on? :)


-Perchance the DwarvenMiners horde code you was using was also the horde code used for the Guardians, I know a lot of those sort of scripts are linked across many different units in the game and altering one alters them all... maybe the code could only be used to horde a single in-game unit and couldn't be repeated to other units, so adding it to the Miners took it away from the Guardians?

Also, naming them is good and all for the gameplay, but it isn't going to affect the way they line up. I have two questions for you: 1) why do they have to line up and 2) why can't they just be... single units, like Orc labourer things? I can't imagine Dwarven Miners lining up really but being more disordered in their approach to battle...

DWARVES! GRAB YOUR SHOVELS AND LINE UP! LINE UP I SAY! NOW, GET INTO DEFENCE FORMATION AND HOLD FAST AGAINST THOSE WARGS! I WILL MAKE A SIEGE ARMY OUT OF YOU YET!
The point of the matter is that the Dwarven Miners are a worker essentially, and not a siege unit or raiding party, so grouping them into a rank isn't really needed and perhaps isn't something you should wear yourself out over? :p
Just my little two cents... helps get you nearer to your dollar! :good:

Edit: as an add-on to the above... you know how at the moment you build them and they come out as the group and then can only be selected individually? Now I personally think that that would work really well. You can order them to move as a unit but they fight alone, you know? It just works with their nature as workers and not as warriors.

As to why the Miners don't work with all the commandsets etc of the Guardians is because maybe you can't duplicate the script of the Guardians into something that doesn't essentially work in the same way as them? (eg different upgrades and unit orders etc?)

If someone can tell me where I can find the scripts for the Miners and the Guardians I'll take a look at them for you and SEE what I can do for you. :mellow:

Edited by Dr.Kirk, 07 September 2008 - 12:02 AM.

Posted Image
Aperture Science. We do what we must, because we can.

#649 Nazgûl

Nazgûl

    S.E.E. Team Leader

  • Hosted
  • 10,582 posts
  • Location:Sweden
  • Projects:BFME2 - Nazgûl's Special Extended Edition
  •  Veteran

Posted 07 September 2008 - 12:18 AM

Uhm well... lol, with you being my new backup Coder and all, you should know one thing :mellow: This is not about wether the Minders should be individual units or not, it's about why the game won't accept them as a horde when I coded them that way :)

This could have been any unit really, but it happened to be Miners. Anyway.. the fact is that using other unit inis and horde inis is nothing unusual. That's how I've been modding for ages. I take a unit that is very similar to the unit I'm gonna code/make (which is depending on what bone/anims the model is rigged to). In this case, the miners are rigged to Guardian bones, so I used Guardian INI and Horde, and duplicated them, and changed names of the objects. That's how I've always done stuff like this :good:
However, this time, the horde refuses to work... and I fail to see why? :(

// C}{riZpc_punch.gif
"Do not come between the Nazgûl and his mod!"
SEE_Banner_2008.jpg
SEE-Team_Leader.jpg
----------------------------------------------------------------------------------------------------
>>>>>>>>>>>>>>>>>>>>>>> I S.E.E. YOU! <<<<<<<<<<<<<<<<<<<<<<<
----------------------------------------------------------------------------------------------------


#650 Dr.Kirk

Dr.Kirk
  • Members
  • 97 posts
  • Projects:SEE - one mod to rule them all

Posted 07 September 2008 - 12:26 AM

Uhm well... lol, with you being my new backup Coder and all, you should know one thing :mellow: This is not about wether the Minders should be individual units or not, it's about why the game won't accept them as a horde when I coded them that way :)

This could have been any unit really, but it happened to be Miners. Anyway.. the fact is that using other unit inis and horde inis is nothing unusual. That's how I've been modding for ages. I take a unit that is very similar to the unit I'm gonna code/make (which is depending on what bone/anims the model is rigged to). In this case, the miners are rigged to Guardian bones, so I used Guardian INI and Horde, and duplicated them, and changed names of the objects. That's how I've always done stuff like this :good:
However, this time, the horde refuses to work... and I fail to see why? :(


Ah... thank you, that explenation made much more sense to me.
Scrap everything I said earlier then.

Right... so, the problem is in the hording... maybe it's got the same problem as a map in Worldbuilder, you can program a skybox into it but can only see it if you decide to play at a certain point on the map... perhaps the problem is simply that you've asked them to group in one area of code but in it's back-up code (what the game checks additionally to check whether or not a written command is valid) you've left it as something else that conflicts with this order or action, and perhaps the game's only answer is to group them first and then make them single selects afterwards...

I'll get back to you on this one.
-Dr.Kirk
Posted Image
Aperture Science. We do what we must, because we can.

#651 Nazgûl

Nazgûl

    S.E.E. Team Leader

  • Hosted
  • 10,582 posts
  • Location:Sweden
  • Projects:BFME2 - Nazgûl's Special Extended Edition
  •  Veteran

Posted 07 September 2008 - 12:32 AM

Yeah np :) It's just really odd, as this is how I always do it. Anyway, I'll see you in Staff. There are loads of other things you can start on. This can wait until Sûl, Robnkarla or Rob38 shows up :mellow: They usually have solutions to my weird problems, lol

// C}{riZpc_punch.gif
"Do not come between the Nazgûl and his mod!"
SEE_Banner_2008.jpg
SEE-Team_Leader.jpg
----------------------------------------------------------------------------------------------------
>>>>>>>>>>>>>>>>>>>>>>> I S.E.E. YOU! <<<<<<<<<<<<<<<<<<<<<<<
----------------------------------------------------------------------------------------------------


#652 Rob38

Rob38

    Believer of Hope

  • Hosted
  • 3,567 posts
  • Location:USA
  • Projects:Helm's Deep Last Hope
  •  One who is not afraid of new challenges

Posted 07 September 2008 - 03:22 AM

So, all you did with the dwarven miners is copy and paste the guardian's unit and horde file, changed the model, and changed the names, correct? May I see both your dwarmen miner unit and horde file please? :mellow:

signature_group1.gif

 

16821.png


#653 Nazgûl

Nazgûl

    S.E.E. Team Leader

  • Hosted
  • 10,582 posts
  • Location:Sweden
  • Projects:BFME2 - Nazgûl's Special Extended Edition
  •  Veteran

Posted 07 September 2008 - 11:13 AM

That is correct...
I'll post the INI's later though, as I have to go and attend to my visiting friends :mellow:
Thanks, CU later =)

// C}{riZpc_punch.gif
"Do not come between the Nazgûl and his mod!"
SEE_Banner_2008.jpg
SEE-Team_Leader.jpg
----------------------------------------------------------------------------------------------------
>>>>>>>>>>>>>>>>>>>>>>> I S.E.E. YOU! <<<<<<<<<<<<<<<<<<<<<<<
----------------------------------------------------------------------------------------------------


#654 Nazgûl

Nazgûl

    S.E.E. Team Leader

  • Hosted
  • 10,582 posts
  • Location:Sweden
  • Projects:BFME2 - Nazgûl's Special Extended Edition
  •  Veteran

Posted 08 September 2008 - 09:54 PM

Ok, I'm back :p


Here we go:

Dwarven Miner unit & horde INI:
Object DwarvenMiner_SEE	; *** ART Parameters ***	SelectPortrait         =  UPDwarvenGuardian	ButtonImage		= WOR_Guardian	Draw = W3DHordeModelDraw ModuleTag_01		OkToChangeModelColor = Yes			StaticModelLODMode = Yes				; specify options for static LODs		LodOptions							= LOW			AllowMultipleModels				= M_ALLOW_MULTIPLE_MODELS_LOW			MaxRandomTextures				= M_MAX_RANDOM_TEXTURES_LOW			MaxRandomAnimations				= M_MAX_RANDOM_ANIMATIONS_LOW			MaxAnimFrameDelta				= M_MAX_ANIM_FRAME_DELTA_LOW		End				LodOptions							= MEDIUM			AllowMultipleModels				= M_ALLOW_MULTIPLE_MODELS_MED			MaxRandomTextures				= M_MAX_RANDOM_TEXTURES_MED			MaxRandomAnimations				= M_MAX_RANDOM_ANIMATIONS_MED			MaxAnimFrameDelta				= M_MAX_ANIM_FRAME_DELTA_MED		End				LodOptions							= HIGH			AllowMultipleModels				= M_ALLOW_MULTIPLE_MODELS_HIGH			MaxRandomTextures				= M_MAX_RANDOM_TEXTURES_HIGH			MaxRandomAnimations				= M_MAX_RANDOM_ANIMATIONS_HIGH			MaxAnimFrameDelta				= M_MAX_ANIM_FRAME_DELTA_HIGH		End		WadingParticleSys = WaterRipplesTrail  ; used when the unit is wading in shallow water.;;================ MODELS =================================================================		DefaultModelConditionState			Model               = eudwminer //EUDwarfGua_SKN			Skeleton            = EUDwarfGua_SKL		End		ModelConditionState WEAPONSET_PLAYER_UPGRADE			Model               = eudwminer //EUDwarfGua_SKN			Skeleton            = EUDwarfGua_SKL		End				ModelConditionState = USER_4		; This state is used in cinematics to get the old style armor			Model               = eudwminer //EUDwarfGua_SKN			Skeleton            = EUDwarfGua_SKL		End;;=============== ANIMATIONS ===============================================================;;======= FALLING & FLYING		AnimationState						= PASSENGER			Animation						= Grabbed				AnimationName				= EUDwarfGua_LEPB ; Don't have real flailing anim, needs to be replaced				AnimationMode				= LOOP			End		End				AnimationState        				= THROWN_PROJECTILE			Animation           			= FlyA				AnimationName      	 		= EUDwarfGua_FLYA				AnimationMode       		= LOOP			End			Animation           			= FlyB				AnimationName      	 		= EUDwarfGua_FLYB				AnimationMode       		= LOOP			End			Animation           			= FlyC				AnimationName      	 		= EUDwarfGua_FLYC				AnimationMode       		= LOOP			End			Flags               			= RANDOMSTART		End				AnimationState						= FREEFALL			Animation						= FallingA				AnimationName				= EUDwarfGua_FLYA				AnimationMode				= LOOP				AnimationBlendTime			= 10			End			Animation						= FallingB				AnimationName				= EUDwarfGua_FLYB				AnimationMode				= LOOP				AnimationBlendTime			= 10			End			Animation						= FallingC				AnimationName				= EUDwarfGua_FLYC				AnimationMode				= LOOP				AnimationBlendTime			= 10			End		End						AnimationState        				= STUNNED_FLAILING 			Animation           			= FlyA				AnimationName       		= EUDwarfGua_FLYA				AnimationMode       		= LOOP				AnimationSpeedFactorRange	= 0.3 0.5			End			Animation           			= FlyB				AnimationName       		= EUDwarfGua_FLYB				AnimationMode       		= LOOP				AnimationSpeedFactorRange	= 0.3 0.5			End			Animation           			= FlyC				AnimationName       		= EUDwarfGua_FLYC				AnimationMode       		= LOOP				AnimationSpeedFactorRange	= 0.3 0.5			End			Flags               			= RANDOMSTART		End    		AnimationState						= DYING BURNINGDEATH			Animation				AnimationName				= EUDwarfGua_DIEA				AnimationMode				= ONCE				AnimationBlendTime			= 10			End			Animation				AnimationName				= EUDwarfGua_DIEB				AnimationMode				= ONCE				AnimationBlendTime			= 10			End			Animation				AnimationName				= EUDwarfGua_DIEC				AnimationMode				= ONCE				AnimationBlendTime			= 10			End			ParticleSysBone     = BAT_HEAD FireBuildingLargeSmoke FollowBone:yes			ParticleSysBone     = BAT_HEAD FireSmall FollowBone:yes			ParticleSysBone     = B_SPINE1 FireBuildingLargeSmoke FollowBone:yes			ParticleSysBone     = B_SPINE1 FireSmall FollowBone:yes			ParticleSysBone     = B_SPINE2 FireBuildingLargeSmoke FollowBone:yes			ParticleSysBone     = B_SPINE2 FireSmall FollowBone:yes		End    		AnimationState = DYING SPLATTED			Animation 						= Splatted_On_Ground				AnimationName 				= EUDwarfGua_LNDA				AnimationMode 				= ONCE			End			EnteringStateFX	= FX_HumanBodyGroundHit_SEE ;FX_OrcHitGround		End    		AnimationState = DYING AFLAME			Animation				AnimationName				= EUDwarfGua_DIEA				AnimationMode				= ONCE				AnimationBlendTime			= 10			End			Animation				AnimationName				= EUDwarfGua_DIEB				AnimationMode				= ONCE				AnimationBlendTime			= 10			End			Animation				AnimationName				= EUDwarfGua_DIEC				AnimationMode				= ONCE				AnimationBlendTime			= 10			End			ParticleSysBone     = BAT_HEAD FireBuildingLargeSmoke FollowBone:yes			ParticleSysBone     = BAT_HEAD FireSmall FollowBone:yes			ParticleSysBone     = B_SPINE1 FireBuildingLargeSmoke FollowBone:yes			ParticleSysBone     = B_SPINE1 FireSmall FollowBone:yes			ParticleSysBone     = B_SPINE2 FireBuildingLargeSmoke FollowBone:yes			ParticleSysBone     = B_SPINE2 FireSmall FollowBone:yes		End				AnimationState        				= DYING DEATH_2				; fading out.			Animation				AnimationName				= EUDwarfGua_IDLB				AnimationMode				= LOOP			End		End				AnimationState						= DYING			Animation						= DIEB				AnimationName				= EUDwarfGua_DIEA				AnimationMode				= ONCE			End			Animation						= DIEB				AnimationName				= EUDwarfGua_DIEB				AnimationMode				= ONCE			End			Animation						= DIEC				AnimationName				= EUDwarfGua_DIEC				AnimationMode				= ONCE			End		End    		AnimationState						= PARALYZED			Animation				AnimationName				= EUDwarfGua_IDLA				AnimationMode				= LOOP			End		End    		AnimationState						= BURNINGDEATH			Animation				AnimationName				= EUDwarfGua_MFDA				AnimationMode				= LOOP				Distance					= 50			End			Flags	= RANDOMSTART			ParticleSysBone     = BAT_HEAD FireBuildingLargeSmoke FollowBone:yes			ParticleSysBone     = BAT_HEAD FireSmall FollowBone:yes			ParticleSysBone     = B_SPINE1 FireBuildingLargeSmoke FollowBone:yes			ParticleSysBone     = B_SPINE1 FireSmall FollowBone:yes			ParticleSysBone     = B_SPINE2 FireBuildingLargeSmoke FollowBone:yes			ParticleSysBone     = B_SPINE2 FireSmall FollowBone:yes		End;;======= LANDING & STANDING		AnimationState						= STUNNED_STANDING_UP			Animation						= GTPA				AnimationName				= EUDwarfGua_GTPA				AnimationMode				= ONCE				AnimationSpeedFactorRange = 1.5 1.5			End		End			AnimationState			=	 STUNNED			Animation			=	 Slatted_On_Ground			AnimationName 				= EUDwarfGua_LNDA				AnimationMode 				= ONCE			End			EnteringStateFX					= FX_OrcHitGround       End 						AnimationState        = MOVING FIRING_OR_PREATTACK_A			ShareAnimation		= Yes			Animation           = RunAndFireA				AnimationName       = EUDwarfGua_ATRA				AnimationMode       = LOOP			End			Animation           = RunAndFireB				AnimationName       = EUDwarfGua_ATRB				AnimationMode       = LOOP			End			Animation           = RunAndFireC				AnimationName       = EUDwarfGua_ATRC				AnimationMode       = LOOP			End			Flags               = RANDOMSTART  		End		;;====== TERROR				AnimationState						= MOVING EMOTION_TERROR EMOTION_LOOK_TO_SKY			;@@@KM Add distance			Animation					= TerrorFromTheSky				AnimationName			= EUDwarfGua_RUNA				AnimationMode			= LOOP			End			Animation					= TerrorFromTheSky				AnimationName			= EUDwarfGua_RUNB				AnimationMode			= LOOP			End			Animation					= TerrorFromTheSky				AnimationName			= EUDwarfGua_RUNC				AnimationMode			= LOOP			End			Flags = RANDOMSTART		End		AnimationState						= MOVING EMOTION_TERROR			;@@@KM Add distance			Animation						= TerrorFromTheSky				AnimationName				= EUDwarfGua_RUNA				AnimationMode				= ONCE			End			Animation						= TerrorFromTheSky				AnimationName				= EUDwarfGua_RUNB				AnimationMode				= ONCE			End			Animation						= TerrorFromTheSky				AnimationName				= EUDwarfGua_RUNC				AnimationMode				= ONCE			End			Flags							= RESTART_ANIM_WHEN_COMPLETE		End		;;======= BACK UP				AnimationState						= MOVING BACKING_UP			;@@@KM Add distance			Animation						= BAKA				AnimationName				= EUDwarfGua_BAKA				AnimationMode				= LOOP			End			Animation						= BAKB				AnimationName				= EUDwarfGua_BAKB				AnimationMode				= LOOP			End			Animation						= BAKC				AnimationName				= EUDwarfGua_BAKC				AnimationMode				= LOOP			End			Flags = RANDOMSTART		End				AnimationState						= MOVING ATTACKING			ShareAnimation					= Yes;			Animation						= RUNA				AnimationName				= EUDwarfGua_RUNA				AnimationMode				= LOOP				Distance					= 25			End			Flags							= RANDOMSTART			;ParticleSysBone				= None InfantryDustTrails		End				AnimationState						= MOVING CHARGING			ShareAnimation					= Yes;			Animation						= RUNB				AnimationName				= EUDwarfGua_RUNB				AnimationMode				= LOOP				Distance					= 30				;AnimationSpeedFactorRange	= 0.5 0.5			End			Flags							= RANDOMSTART			;ParticleSysBone				= None InfantryDustTrails		End		AnimationState						= MOVING			;@@@KM - Add Distance			ShareAnimation					= Yes;			Animation						= RUNB				AnimationName				= EUDwarfGua_RUNA				AnimationMode				= LOOP				Distance					= 30			End			Flags							= RANDOMSTART			;ParticleSysBone				= None InfantryDustTrails		End;;======= UNCONTROLLABLY AFRAID	; This is before Attacking so it overrides it.  Normal fear is below so you don't go to little-fear in between swings.		AnimationState						= EMOTION_UNCONTROLLABLY_AFRAID			Animation						= FERA				AnimationName				= EUDwarfGua_FERA				AnimationMode				= LOOP			End 			Animation						= FERA				AnimationName				= EUDwarfGua_FERB				AnimationMode				= LOOP			End 			Animation						= FERA				AnimationName				= EUDwarfGua_FERC				AnimationMode				= LOOP			End 			Flags							= RANDOMSTART		End;;---------------------- ATTACKING ----------------------------------------------------------------		AnimationState						= FIRING_OR_PREATTACK_A			Animation						= ATK1				AnimationName				= EUDwarfGua_ATKA				AnimationMode				= ONCE				UseWeaponTiming				= Yes			End			Animation						= ATK2				AnimationName				= EUDwarfGua_ATKB				AnimationMode				= ONCE				UseWeaponTiming				= Yes			End					Animation						= ATK3				AnimationName				= EUDwarfGua_ATKC				AnimationMode				= ONCE				UseWeaponTiming				= Yes			End			;ParticleSysBone				= None MeleeDust		End;;----------------- HIT REACTIONS -------------------------------------------------------------------------;		AnimationState						= HIT_REACTION;			Animation						= HITA;				AnimationName				= EUDwarfGua_HITA;				AnimationMode				= ONCE;			End;		End;;----------------- EMOTIONS ----------------------------------------------------------------;;======= APPREHENSIVE		AnimationState						= EMOTION_ALERT EMOTION_AFRAID			Animation						= APPA				AnimationName				= GUManMocap_APPA				AnimationMode				= ONCE			End			Animation						= APPB				AnimationName				= GUManMocap_APPB				AnimationMode				= ONCE			End			Flags							= RANDOMSTART RESTART_ANIM_WHEN_COMPLETE		End		;;======= AFRAID		AnimationState						= EMOTION_AFRAID			Animation						= FERA				AnimationName				= EUDwarfGua_FERA				AnimationMode				= LOOP			End 			Animation						= FERA				AnimationName				= EUDwarfGua_FERB				AnimationMode				= LOOP			End 			Animation						= FERA				AnimationName				= EUDwarfGua_FERC				AnimationMode				= LOOP			End 			Flags							= RANDOMSTART		End		AnimationState						= ATTACKING			Animation						= ALERT_1				AnimationName				= EUDwarfGua_IDLA				AnimationMode				= LOOP			End		End;;======== POINTING		AnimationState						= EMOTION_POINTING			Animation						= Pointing1B				AnimationName				= EUDwarfGua_PNTB 				AnimationMode				= LOOP			End			Animation						= Pointing1C				AnimationName				= EUDwarfGua_PNTC 				AnimationMode				= LOOP			End			Flags							= RANDOMSTART		End;;======= TAUNTING		AnimationState						= EMOTION_TAUNTING			Animation						= Taunting1A				AnimationName				= EUDwarfGua_TNTA 				AnimationMode				= LOOP			End			Animation						= Taunting1B				AnimationName				= EUDwarfGua_TNTB				AnimationMode				= LOOP			End			Animation						= Taunting1C				AnimationName				= EUDwarfGua_TNTC				AnimationMode				= LOOP			End			Flags							= RANDOMSTART		End;;======= CELEBRATING		AnimationState						= EMOTION_CELEBRATING			Animation						= CHRA				AnimationName				= EUDwarfGua_CHRA				AnimationMode				= LOOP			End			Animation						= Taunting1B				AnimationName				= EUDwarfGua_CHRB				AnimationMode				= LOOP			End			Animation						= Taunting1C				AnimationName				= EUDwarfGua_CHRC				AnimationMode				= LOOP			End			Flags							= RANDOMSTART		End		;;----------------- ALERT STATE ---------------------------------------------------------------------------		AnimationState						= EMOTION_ALERT			Animation						= ALERT_1				AnimationName				= EUDwarfGua_IDLA				AnimationMode				= LOOP;ONCE				AnimationPriority			= 10			End			Flags							= RESTART_ANIM_WHEN_COMPLETE ; acts like an idle animation & keeps running the animations.		End				AnimationState						= RAISING_FLAG			Animation						= Taunting1A				AnimationName				= EUDwarfGua_CHRA				AnimationMode				= ONCE				AnimationSpeedFactorRange	= 0.9 1.1			End			Animation						= Taunting1B				AnimationName				= EUDwarfGua_CHRB				AnimationMode				= ONCE				AnimationSpeedFactorRange	= 0.9 1.1			End			Animation						= Taunting1C				AnimationName				= EUDwarfGua_CHRC				AnimationMode				= ONCE				AnimationSpeedFactorRange	= 0.9 1.1			End			Flags							= RESTART_ANIM_WHEN_COMPLETE		End;;----------------- SELECTED STATES -----------------------------------------------------------------------		AnimationState        = SELECTED			StateName           = STATE_Selected			Animation           = ATNB				AnimationName     = EUDwarfGua_ATNB				AnimationMode     = LOOP			End						BeginScript				Prev = CurDrawablePrevAnimationState()				if Prev == "STATE_Idle" 				then 					CurDrawableSetTransitionAnimState("TRANS_IdleToSelected") 				end				if CurDrawableModelcondition("ATTACKING")				then					return "IDLA"				else					return "ATNA"				end			EndScript						BeginScript				Prev = CurDrawablePrevAnimationState()				if Prev == "STATE_Idle" then CurDrawableSetTransitionAnimState("TRANS_IdleToSelected") end			EndScript		End		;;----------------- IDLE STATES ---------------------------------------------------------------------------		AnimationState				= WEAPONSET_PLAYER_UPGRADE			StateName				= STATE_Idle			Animation				= IDLB				AnimationName       = EUDwarfGua_IDLB				AnimationMode       = ONCE				AnimationSpeedFactorRange = 0.9 1.1			End			Animation				= IDLC				AnimationName       = EUDwarfGua_IDLC				AnimationMode       = ONCE				AnimationSpeedFactorRange = 0.9 1.1			End			Animation				= IDLD				AnimationName       = EUDwarfGua_IDLD				AnimationMode       = ONCE				AnimationSpeedFactorRange = 0.9 1.1			End			Animation				= CHRA				AnimationName       = EUDwarfGua_CHRA				AnimationMode       = ONCE				AnimationSpeedFactorRange = 0.9 1.1			End			Animation				= CHRB				AnimationName       = EUDwarfGua_CHRB				AnimationMode       = ONCE				AnimationSpeedFactorRange = 0.9 1.1			End			Flags					= RESTART_ANIM_WHEN_COMPLETE						BeginScript				Prev = CurDrawablePrevAnimationState()				if Prev == "STATE_Selected" then CurDrawableSetTransitionAnimState("TRANS_SelectedToIdle") end			EndScript		End				AnimationState				= USER_3			StateName				= STATE_User_3			Animation				= GUARD_STANCE				AnimationName		= GUManMocap_IDLA				AnimationMode		= LOOP			End		End		IdleAnimationState		    ;AllowRepeatInRandomPick = no		    ;Flags = RANDOMSTART			StateName				= STATE_Idle            Animation				= IDLA                AnimationName       = EUDwarfGua_IDLA ;default idle				AnimationMode       = ONCE				AnimationPriority   = 100 				AnimationSpeedFactorRange = 0.9 1.1				AnimationBlendTime	= 15			End			Animation				= IDLB				AnimationName       = EUDwarfGua_IDLB ;figet idle, similar to IDLA, should be used sparingly				AnimationMode       = ONCE				AnimationPriority   = 10				AnimationSpeedFactorRange = 0.9 1.1				AnimationBlendTime	= 15			End			Animation				= IDLC				AnimationName       = EUDwarfGua_IDLC ;bored idle --similar to IDLD but longer				AnimationMode       = ONCE				AnimationPriority   = 5				AnimationSpeedFactorRange = 0.9 1.1				AnimationBlendTime	= 15			End			Animation				= IDLD				AnimationName       = EUDwarfGua_IDLD ;bored idle --similar to IDLC but shorter				AnimationMode       = ONCE				AnimationPriority   = 7				AnimationSpeedFactorRange = 0.9 1.1				AnimationBlendTime	= 15			End			BeginScript				Prev = CurDrawablePrevAnimationState()				if Prev == "STATE_Selected" then CurDrawableSetTransitionAnimState("TRANS_SelectedToIdle") end			EndScript		End;;--------------- TRANSITIONS ---------------------------------------------------------------------------		TransitionState       = TRANS_IdleToSelected			Animation           = ATNA				AnimationName     = EUDwarfGua_ATNA				AnimationMode     = ONCE				AnimationSpeedFactorRange = 0.9 1.0							End		End		TransitionState		= TRANS_SelectedToIdle			Animation			= ATNC				AnimationName	= EUDwarfGua_ATNC				AnimationMode	= ONCE				AnimationSpeedFactorRange = 0.9 1.0			End		End	End	    #include "..\..\..\includes\StunDrawModuleSmall.inc"	;// ***DESIGN parameters ***	Side				= Dwarves	EditorSorting		= UNIT	ThreatLevel			= 1.0	ThingClass			= HORDE_UNIT	CommandPoints		= 4	BountyValue			= M_DWARVEN_MINER_BOUNTY_VALUE		;EmotionRange		= 240 ;// Make sure this value is greater than the fear distribution range. 	TransportSlotCount = M_TRANSPORTSLOTCOUNT_UNIT	;;; WEAPON SETS ;;;	WeaponSet		Conditions			= None 		Weapon				= PRIMARY    DwarvenGuardianAxe		AutoChooseSources	= PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI	End	WeaponSet		Conditions			= PLAYER_UPGRADE		Weapon				= PRIMARY    DwarvenGuardianSiegeHammer_SEE		AutoChooseSources	= PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI	End	; WeaponSet		; Conditions = WEAPONSET_TOGGLE_1		; Weapon = PRIMARY	DwarvenGuardianAxe		; Weapon = SECONDARY	DwarvenBatteringRam		; OnlyAgainst = SECONDARY MINE	; End	;;; ARMOR SETS ;;;	ArmorSet		Conditions      = None		Armor           = DwarvenAxeThrowerArmor		DamageFX        = NormalDamageFX	End	ArmorSet		Conditions      = PLAYER_UPGRADE		Armor           = DwarvenAxeThrowerHeavyArmor		DamageFX       = NormalDamageFX	End		VisionRange = M_VISION_STANDARD_MELEE_HORDEMEMBER ;M_DWARVEN_GUARDIAN_VISION_RANGE	VisionSide = 35%	VisionRear = 25%	; VisionBonusPercentPerFoot = 1.0%    ;------------ Modified by Sûlherokhh (was 2%)	; MaxVisionBonusPercent = 300%	; VisionBonusTestRadius = 200	ShroudClearingRange = M_SHROUD_CLEAR_STANDARD					DisplayName					= OBJECT:DwarvenMiner	CrushableLevel				= 0		;//What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles	CrusherLevel					= 1 	CrushWeapon					= GuardianCrush  		CrushOnlyWhileCharging		= yes	;// the guardian is only supposed to crush during his special charge ability		MinCrushVelocityPercent 	= 50%	;// Has to be moving at least xx% of full speed	CrushDecelerationPercent	= 90%	;// Lose xx% max velocity when crushing -- thus they only crush 1 row of infantry	CrushKnockback				= 40	;// how hard we knock back crushed units.	CrushZFactor				= 1.0	;// How much we knock upwards.		CrushRevengeWeapon			= BasicInfantryCrushRevenge		CommandSet					= DwarvenMinerCommandSet	;//--- AUDIO Parameters ---	;VoiceAmbushed							= DwarfGuardianVoiceAmbushed		VoiceAttack								= DwarfGuardianVoiceAttack	VoiceAttackCharge						= DwarfGuardianVoiceAttackCharge	VoiceAttackMachine						= DwarfGuardianVoiceAttack	VoiceAttackStructure					= DwarfGuardianVoiceAttackBuilding	VoiceCreated							= DwarfGuardianVoiceSalute	VoiceFullyCreated 						= DwarfGuardianVoiceSalute	VoiceGuard								= DwarfGuardianVoiceMove	VoiceMove								= DwarfGuardianVoiceMove	VoiceMoveToCamp							= DwarfGuardianVoiceMoveCamp	VoiceMoveWhileAttacking					= DwarfGuardianVoiceDisengage	VoicePriority							= 47	VoiceRetreatToCastle					= DwarfGuardianVoiceRetreat			VoiceSelect								= DwarfGuardianVoiceSelectMS	VoiceSelectBattle 						= DwarfGuardianVoiceSelectBattle				VoiceEnterStateAttack					= DwarfGuardianVoiceEnterStateAttack	VoiceEnterStateAttackCharge				= DwarfGuardianVoiceEnterStateAttackCharge	VoiceEnterStateAttackMachine			= DwarfGuardianVoiceEnterStateAttackBuilding	VoiceEnterStateAttackStructure			= DwarfGuardianVoiceEnterStateAttackBuilding	VoiceEnterStateMove						= DwarfGuardianVoiceEnterStateMove	VoiceEnterStateMoveToCamp				= DwarfGuardianVoiceEnterStateMoveCamp	VoiceEnterStateMoveWhileAttacking		= DwarfGuardianVoiceEnterStateDisengage	VoiceEnterStateRetreatToCastle			= DwarfGuardianVoiceEnterStateRetreat	SoundImpact								= ImpactHorse	UnitSpecificSounds		VoiceGarrison						= DwarfGuardianVoiceMoveGarrison		VoiceEnterUnitElvenTransportShip	= DwarfGuardianVoiceMoveShip		VoiceInitiateCaptureBuilding		= DwarfGuardianVoiceCaptureBuilding		;VoiceEnterStateInitiateCaptureBuilding	=	End    #include "..\..\..\includes\StandardUnitEvaEvents.inc"	CrowdResponseKey = Dwarf	Behavior = LargeGroupAudioUpdate ModuleTag_LGAU		Key = Humanoid_Male Dwarf Dwarf_Male Dwarf_Guardian	End		ClientBehavior = ModelConditionAudioLoopClientBehavior ModuleTag_foo		ModelCondition = Required:EMOTION_CELEBRATING	Excluded:DYING ENGAGED	Sound:EmotionDwarfCompilationVoxCheerSinglesLoop	;MOVING ATTACKING		ModelCondition = Required:EMOTION_POINTING		Excluded:DYING ENGAGED	Sound:EmotionDwarfCompilationVoxTauntSinglesLoop	;MOVING ATTACKING		ModelCondition = Required:EMOTION_TAUNTING		Excluded:DYING ENGAGED	Sound:EmotionDwarfCompilationVoxTauntSinglesLoop	;MOVING ATTACKING		ModelCondition = Required:RAISING_FLAG			Excluded:DYING ENGAGED	Sound:EmotionDwarfCompilationVoxTauntSinglesLoop	End	; Change selection sounds based on upgrades	ClientBehavior = UpgradeSoundSelectorClientBehavior ModuleTag_UpgradeSoundSelector		SoundUpgrade		= Upgrade_DwarvenSiegeHammer						; EVERYTHING on this line must be present		;ExcludedUpgrades	= Upgrade_OpenGarrison Upgrade_TrebuchetTurret		; NOTHING on this line can be present			VoiceAttack		= DwarfGuardianVoiceAttackHammer			VoiceAttack		= DwarfGuardianVoiceEnterStateAttackHammer		End	End	ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior		MaxUpdateRangeCap = 800;		AnimationSound = Sound: TauntHumanHitShield	Animation:GUMAArms_SKL.GUManMocap_IDLC	Frames: 17 27		AnimationSound = Sound:BodyFallOrc			Animation:EUDWARFGUA_SKL.EUDWARFGUA_LNDA	Frames:4;		AnimationSound = Sound:AxeDropSoundHere!	Animation:EUDWARFGUA_SKL.EUDWARFGUA_DIEA	Frames:8		;axe falls		AnimationSound = Sound:BodyFallGeneric2		Animation:EUDWARFGUA_SKL.EUDWARFGUA_DIEA	Frames:45;		AnimationSound = Sound:AxeDropSoundHere!	Animation:EUDWARFGUA_SKL.EUDWARFGUA_DIEB	Frames:8		;axe falls		AnimationSound = Sound:BodyFallGeneric2		Animation:EUDWARFGUA_SKL.EUDWARFGUA_DIEB	Frames:28		AnimationSound = Sound:BodyFallGeneric2		Animation:EUDWARFGUA_SKL.EUDWARFGUA_DIEC	Frames:45	End	; *** ENGINEERING Parameters ***	RadarPriority = UNIT	KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS INFANTRY PATH_THROUGH_EACH_OTHER SCORE THROWN_OBJECT ATTACK_NEEDS_LINE_OF_SIGHT NOTIFY_OF_PREATTACK GRAB_AND_DROP		Body = ActiveBody ModuleTag_02		CheerRadius 		= M_EMOTION_CHEER_RADIUS		MaxHealth			= M_DWARVEN_MINER_HEALTH		MaxHealthDamaged	= M_DWARVEN_MINER_HEALTH_DAMAGED		BurningDeathBehavior = Yes		BurningDeathFX       = FX_InfantryBurningFlame	End			;//-----UPGRADES------	;--Weapon--	Behavior = WeaponSetUpgrade WeaponSetUpgradeModuleTagGuardian		TriggeredBy = Upgrade_DwarvenSiegeHammer ; ;Upgrade_DwarvenForgedBlades		ConflictsWith = Upgrade_DwarvenForgedBlades ; ;	End	; Behavior = WeaponSetUpgrade WeaponSetUpgradeModuleTagGuardian		; TriggeredBy = Upgrade_DwarvenForgedBlades	; End	Behavior = SubObjectsUpgrade ForgedBlade_UpgradeGuardian		TriggeredBy		= Upgrade_DwarvenForgedBlades		ConflictsWith = Upgrade_DwarvenSiegeHammer ; ;		ShowSubObjects	= Forged_Blade	End			;--Siege Hammer	Behavior = SubObjectsUpgrade SiegeHammer_UpgradeGuardian		TriggeredBy		= Upgrade_DwarvenSiegeHammer		ConflictsWith 	= Upgrade_DwarvenForgedBlades ; ;		HideSubObjects	= axe shield		ShowSubObjects	= hammer1	End			;--Armor--	Behavior = ArmorUpgrade ArmorUpgradeModuleTagGuardian		TriggeredBy = Upgrade_DwarvenMithrilMail		ArmorSetFlag			= PLAYER_UPGRADE	    ;KillArmorUpgrade = Yes ;This cancels any previous armor upgrade.	End		Behavior = SubObjectsUpgrade Armor_UpgradeGuardian		TriggeredBy		= Upgrade_DwarvenMithrilMail		UpgradeTexture	= EUDwarfMin.tga 0 EUDwarfMin_HA.tga		RecolorHouse	= Yes		ExcludeSubobjects = Forged_Blade	End				Behavior = AIUpdateInterface ModuleTag_03		AutoAcquireEnemiesWhenIdle	=	Yes ATTACK_BUILDINGS		MoodAttackCheckRate			=	500		AILuaEventsList				=	DwarvenMinerFunctions		MinCowerTime				=	3000		MaxCowerTime				=	5000		AttackPriority				= 	AttackPriority_Cavalry		BurningDeathTime			=	M_BURNINGDEATH_DURATION_INFANTRY	End	LocomotorSet		Locomotor = HumanSpecialChargeLocomotor		Condition = SET_NORMAL 		Speed     = M_NORMAL_GOOD_INFANTRY_MEMBER_SPEED	End	LocomotorSet		Locomotor = BurningDeathLocomotorInfantry		Condition = SET_BURNINGDEATH		Speed	  = M_BURNINGDEATH_WANDERSPEED_INFANTRY	End	Behavior = PhysicsBehavior ModuleTag_04		GravityMult				= 1.0		ShockStunnedTimeLow		= 1400	;msec		ShockStunnedTimeHigh	= 2400	;msec		ShockStandingTime		= 666	;msec	End   Behavior = FlammableUpdate ModuleTag_BurningDeathPromotor		AflameDuration		= M_TROOP_AFLAME_DURATION	// If I catch fire, I'll burn for this long...		AflameDamageAmount	= M_TROOP_AFLAME_DAMAGE_AMOUNT			// taking this much damage...		AflameDamageDelay	= M_TROOP_AFLAME_DAMAGE_DELAY		// this often.		FlameDamageLimit	= M_TROOP_FLAME_DAMAGE_LIMIT		FlameDamageExpiration		= M_TROOP_FLAME_DAMAGE_EXPIRATION	End  	Behavior = AttributeModifierUpgrade ModuleTag_AMU		TriggeredBy			= Upgrade_GondorFighterFearless		AttributeModifier	= FearlessForever	End	 	Behavior = AttributeModifierUpgrade ModuleTag_SHU		TriggeredBy			= Upgrade_DwarvenSiegeHammer		AttributeModifier	= DwarvenSiegeHammer	End	 	 	Behavior = SquishCollide ModuleTag_06		;//nothing	End		Behavior = HordeMemberCollide ModuleTag_HMC		;//nothing	End	;	Behavior = HitReactionBehavior HitReactionBehaviorModuleTag;		HitReactionLifeTimer1 = 2500 ; level 1 (light  damage)  hit reaction animations in ms;		HitReactionLifeTimer2 = 2500 ; level 2 (medium damage)  hit reaction animations in ms;		HitReactionLifeTimer3 = 2500 ; level 3 (heavy  damage)  hit reaction animations in ms;		HitReactionThreshold1 = 5.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		;		FastHitsResetReaction = Yes    If set -- when hits occur faster than the reaction animations, it will reset the animation. (like getting riddled with machine gun bullets);	End	Behavior = SlowDeathBehavior ModuleTag_05		DeathTypes			= ALL -KNOCKBACK -FADED -NORMAL		SinkDelay			= 3000		SinkRate			= 0.90     ; in Dist/Sec		DestructionDelay	= 15000		Sound				= INITIAL DwarfGenericVoiceDie	End		Behavior = SlowDeathBehavior ModuleTag_07		;// Same as normal death, but no sound (sound already played by SoundImpact = ... )		DeathTypes			= NONE +KNOCKBACK		SinkDelay			= 3000		SinkRate			= 0.60     ; in Dist/Sec		DestructionDelay	= 10000	End		Behavior = SlowDeathBehavior ModuleTag_FadeDeath		DeathTypes			= NONE +FADED		FadeDelay			= 0		FadeTime			= 5000		DestructionDelay	= 5000        DeathFlags			= DEATH_2;		FX					= INITIAL FX_UnSummonElvenAllies		Sound = INITIAL SpellGenericUnsummonMS	End	  #include "..\..\..\..\includes\GiantBirdDroppingHumanBody_SEE.inc"	;//--- NEW DWARVEN CHARGE ABILITY ---  Behavior = SpecialPowerModule ModuleTag_ChargeStarter                      		SpecialPowerTemplate		= SpecialAbilityDwarvenCharge		UpdateModuleStartsAttack	= Yes		InitiateSound				= DwarfGuardianBullRushMS	End	#include "..\..\..\includes\DwarvenChargeUpdate.inc"		Behavior = CommandSetUpgrade ModuleTag_commandGuardian		TriggeredBy = Upgrade_DwarvenForgedBlades Upgrade_DwarvenSiegeHammer		RequiresAllTriggers	= Yes		CommandSet = DwarvenGuardianHordeToggleCommandSet	End	  	Geometry			= CYLINDER	GeometryMajorRadius = 5.6	GeometryMinorRadius = 5.6	GeometryHeight = 16.0  GeometryIsSmall = Yes    Shadow			= SHADOW_DECAL    ShadowSizeX			= 19;    ShadowSizeY			= 19;    ShadowTexture		= ShadowI;End;-------------------------------------Object DwarvenMinerHorde_SEE	; This is required for garrisoned objects - please put in all objects.	ButtonImage		= WOR_Guardian	SelectPortrait	= UPDwarvenGuardian	Draw = W3DScriptedModelDraw ModuleTag_W3DModelDraw    DependencySharedModelFlags = USER_8 EMOTION_ALERT EMOTION_MORALE_HIGH EMOTION_MORALE_LOW EMOTION_AFRAID EMOTION_COWER EMOTION_TERROR EMOTION_LOOK_TO_SKY SELECTED		DefaultModelConditionState			Model = None ;InvisHrdeTmp5x2		End		ModelConditionState = HORDE_EMPTY			Model = None		End						ModelConditionState = WORLD_BUILDER			Model = HordeMarkEUDFG		End			End		Side = Dwarves	EditorSorting = UNIT	EmotionRange = 240	DisplayName = OBJECT:HordeDwarvenMiner	DisplayNameStrategic = CONTROLBAR:LW_Unit_DwarvenGuardianHorde	DescriptionStrategic = CONTROLBAR:LW_ToolTip_DwarvenGuardianHorde	;-----------------------------------------  ;Prerequisites   ;Object = DwarvenWorkPit  ;End;-----------------------------------------					WeaponSet		Conditions = None 		Weapon = PRIMARY    NormalMeleeHordeRangefinder	End	; *** AUDIO Parameters ***;	; Note: Don't put voice parameters here -- they will be ignored. Voice play requests	; are always passed through to members	#include "..\..\..\includes\StandardHordeEvaEvents.inc"	UnitSpecificSounds		VoiceDesperateAttack  = GondorSoldierVoiceDesperateCharge 	End	BuildCost = M_DWARVEN_MINER_BUILDCOST	BuildTime = M_DWARVEN_MINER_BUILDTIME      	VisionRange = M_DWARVEN_MINER_HORDE_VISION_RANGE	ShroudClearingRange = M_DWARVEN_MINER_SHROUD_RANGE	VisionSide = 50%	VisionRear = 25%		; MaxVisionBonusPercent = 300%	; VisionBonusTestRadius = 200	; VisionBonusPercentPerFoot = 1.0%	CommandPoints = 30 //60		FormationWidth = 2 ; Width it occupies in formations. Current choices are 1 or 2.	FormationDepth = 1 ; Depth it occupies in formations. Current choices are 1 or 2.		CrushableLevel = 0  ;What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles	CrusherLevel = 1 		CrushOnlyWhileCharging = YES ; // the guardian is only supposed to crush during his special charge ability		MinCrushVelocityPercent = 50% ; Has to be moving at least xx% of full speed	CrushDecelerationPercent = 90% ; Lose xx% max velocity when crushing -- thus they only crush 1 row of infantry		CrushKnockback = 40  ; how hard we knock back crushed units.	CrushZFactor = 1.0  ; How much we knock upwards.  TransportSlotCount = M_TRANSPORTSLOTCOUNT_SMALL_HORDE	KindOf = SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT INFANTRY HORDE MELEE_HORDE NOTIFY_OF_PREATTACK ARMY_SUMMARY LARGE_RECTANGLE_PATHFIND ;;UNATTACKABLE 		ThreatLevel = M_DWARVEN_MINER_HORDE_THREAT	ThreatBreakdown DwarvenGuardianHorde_DetailedThreat		AIKindOf = INFANTRY	End		Body = ImmortalBody ModuleTag_ImmortalBody		MaxHealth = 1	End		#include "..\..\..\includes\CaptureBuilding.inc"		Behavior = StancesBehavior ModuleTag_StancesBehavior    StanceTemplate = FighterHorde  End		Behavior = HordeAIUpdate ModuleTag_HordeAIUpdate		AutoAcquireEnemiesWhenIdle	= Yes ATTACK_BUILDINGS		MoodAttackCheckRate			= 500		MaxCowerTime				= 5000		MinCowerTime				= 3000		CanAttackWhileContained		= Yes  ; Can fire out of garrisoned building		AILuaEventsList				= InfantryFunctions	; 		AttackPriority				= AttackPriority_Infantry	End	Behavior = HordeContain ModuleTag_HordeContain		FrontAngle = 270		FlankedDelay = 2000		ObjectStatusOfContained			= 		InitialPayload					= DwarvenMiner_SEE 15		Slots							= 15		PassengerFilter					= NONE +INFANTRY		ShowPips						= No		ThisFormationIsTheMainFormation = Yes	;//Used to determine which armorset to use (and anything else we want!)		RandomOffset = X:0 Y:0				MeleeBehavior = Amoeba	End							; Banner Carrier info				BannerCarriersAllowed	= DwarvenGuardianBanner ;DwarvenBanner										;// types of units that are allowed as banner carriers		BannerCarrierPosition	= UnitType:DwarvenGuardian	Pos:X:40.0 Y:0.0		// (DEFAULT) position of banner carrier				RankInfo = RankNumber:1 UnitType:DwarvenMiner_SEE Position:X:20 Y:0			Position:X:20 Y:20				Position:X:20 Y:-20				Position:X:20 Y:40				Position:X:20 Y:-40 		RankInfo = RankNumber:2 UnitType:DwarvenMiner_SEE Position:X:0 Y:0 Leader 1 0	Position:X:0 Y:20 Leader 1 1	Position:X:0 Y:-20 Leader 1 2	Position:X:0 Y:40 Leader 1 3	Position:X:0 Y:-40 Leader 1 4		RankInfo = RankNumber:3 UnitType:DwarvenMiner_SEE Position:X:-20 Y:0 Leader 2 0	Position:X:-20 Y:20 Leader 2 1	Position:X:-20 Y:-20 Leader 2 2	Position:X:-20 Y:40 Leader 2 3	Position:X:-20 Y:-40 Leader 2 4		RanksToReleaseWhenAttacking		= 1 2 3 ;Modified by Sûlherokhh (was '1')				MeleeAttackLeashDistance = 1; How far the hordes can move from the center of the horde when melee attacking.						BackUpMinDelayTime				= 1		;// The minimum amount of time to delay before backing up		BackUpMaxDelayTime				= 3000	;// The maximum amount of time to delay before backing up		BackUpMinDistance				= 1		;// The minimum number of cells to backup		BackUpMaxDistance				= 3		;// The maximum number of cells to backup		BackupPercentage				= 80%	;// The amount of chance that a unit will back up.	End	Behavior = PhysicsBehavior ModuleTag_PhysicsBehavior		GravityMult = 1.0	End		Behavior = CommandButtonHuntUpdate ModuleTag_CommandButtonHuntUpdate	End  	Behavior = HordeNotifyTargetsOfImminentProbableCrushingUpdate ModuleTag_NotifyCrushScan		ScanWidth = 60.0 ; A little less than the width of the horde (which is 2 * 35 = 70)	End  Behavior = EmotionTrackerUpdate	Module_EmotionTracker		TauntAndPointDistance		=	M_INFANTRY_TAUNT_POINT_RADIUS		; max distance to taunted/pointed objet		TauntAndPointUpdateDelay	=	1000		; how often scan (milliseconds)		TauntAndPointExcluded		=	NONE 		AfraidOf					=	M_EMOTION_AFRAIDOF_OBJECTFILTER		AlwaysAfraidOf				=	M_EMOTION_ALWAYS_AFRAIDOF_OBJECTFILTER 		PointAt						=	M_EMOTION_POINTAT_OBJECTFILTER		HeroScanDistance		=	150		FearScanDistance		=	M_INFANTRY_FEAR_SCAN_RADIUS		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     = NormalChargeMeleeHordeLocomotor		Condition     = SET_NORMAL		Speed         = M_NORMAL_GOOD_INFANTRY_HORDE_SPEED	End		LocomotorSet		Locomotor     = ScaredMeleeHordeLocomotor		Condition     = SET_SCARED		Speed         = M_NORMAL_GOOD_INFANTRY_HORDE_SPEED	End		Behavior = ProductionUpdate ProductionUpdateModuleTag		GiveNoXP = Yes	End	Behavior = LevelUpUpgrade ModuleTag_CreateLevelUpUpgrade		TriggeredBy = Upgrade_DwarvenBasicTraining		LevelsToGain = 1		LevelCap = 2	End		Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality1		TriggeredBy = Upgrade_DwarvenSiegeHammer	End		Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality2		TriggeredBy = Upgrade_DwarvenForgedBlades	End		Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality3		TriggeredBy = Upgrade_DwarvenMithrilMail	End	Behavior = PickupStuffUpdate ModuleTag_PickupStuffUpdate		SkirmishAIOnly = Yes		StuffToPickUp = NONE +CRATE		ScanRange = 200		ScanIntervalSeconds = 0.5	End	;;; NEW DWARVEN CHARGE ABILITY ;;;	Behavior = UnpauseSpecialPowerUpgrade ModuleTag_ChargeUnpause		SpecialPowerTemplate      = SpecialAbilityDwarvenCharge		TriggeredBy				  = Upgrade_ObjectLevel2	End	  Behavior = SpecialPowerModule ModuleTag_ChargeStarter                      		SpecialPowerTemplate      = SpecialAbilityDwarvenCharge		UpdateModuleStartsAttack  = Yes		StartsPaused			  = Yes	End	#include "..\..\..\includes\DwarvenChargeUpdate.inc"			Behavior = AutoAbilityBehavior ModuleTag_AutoAbilityBehavior		SpecialAbility = SpecialAbilityDwarvenCharge		MaxScanRange				= 140		Query						= 1 ALL ENEMIES -STRUCTURE	End	CommandSet = DwarvenMinerHordeCommandSet		Behavior = CommandSetUpgrade ModuleTag_DwarvenGuardianHordeBladesCommandSet		TriggeredBy		= Upgrade_DwarvenForgedBlades		ConflictsWith	= Upgrade_DwarvenSiegeHammer		CommandSet		= DwarvenGuardianHordeBladesCommandSet_SEE	End; ;	Behavior = CommandSetUpgrade ModuleTag_DwarvenGuardianHordeSiegeCommandSet		TriggeredBy		= Upgrade_DwarvenSiegeHammer		ConflictsWith	= Upgrade_DwarvenForgedBlades		CommandSet		= DwarvenGuardianHordeSiegeCommandSet_SEE	End	/////////////////////	// AISpecialPowers	/////////////////////		#include "..\..\..\..\includes\Battlestance_SEE.inc"		Behavior = AISpecialPowerUpdate DwarfGuardianCharge		CommandButtonName = Command_DwarvenGuardianChargeAttack		SpecialPowerAIType = AI_SPECIAL_POWER_CHARGE	End	Geometry = BOX	GeometryMajorRadius = 30.0	GeometryMinorRadius = 45.0	GeometryHeight = 20.0	GeometryIsSmall = No			; *** AUTO RESOLVE DATA *** 	AutoResolveUnitType = AutoResolveUnit_Soldier	AutoResolveCombatChain = AutoResolve_SoldierCombatChain		AutoResolveBody = AutoResolve_DwarvenGuardianHordeBody		AutoResolveArmor		RequiredUpgrades = Upgrade_DwarvenMithrilMail		Armor = AutoResolve_DwarvenGuardianHeavyArmor	End	AutoResolveArmor		ExcludedUpgrades = Upgrade_DwarvenMithrilMail		Armor = AutoResolve_DwarvenGuardianArmor	End	AutoResolveWeapon		RequiredUpgrades = Upgrade_DwarvenForgedBlades		Weapon = AutoResolve_DwarvenGuardianUpgradedWeapon	End	AutoResolveWeapon		ExcludedUpgrades = Upgrade_DwarvenForgedBlades		Weapon = AutoResolve_DwarvenGuardianWeapon	End		WorldMapArmoryUpgradesAllowed = Upgrade_DwarvenBasicTraining Upgrade_DwarvenForgedBlades Upgrade_DwarvenMithrilMailEnd


I can't see any problems here?

// C}{riZpc_punch.gif
"Do not come between the Nazgûl and his mod!"
SEE_Banner_2008.jpg
SEE-Team_Leader.jpg
----------------------------------------------------------------------------------------------------
>>>>>>>>>>>>>>>>>>>>>>> I S.E.E. YOU! <<<<<<<<<<<<<<<<<<<<<<<
----------------------------------------------------------------------------------------------------


#655 Nazgûl

Nazgûl

    S.E.E. Team Leader

  • Hosted
  • 10,582 posts
  • Location:Sweden
  • Projects:BFME2 - Nazgûl's Special Extended Edition
  •  Veteran

Posted 10 September 2008 - 11:39 PM

GAH... I've spent 3 days trying to solve this now. What the F am I doing wrong? ;)

The only lead I have was that the Miner horde code made the Guardians have the exact same error ^
But even though I moved the Miner horde code from Dwarven horde ini into the unit INI, the Miners still refuse to work, and still look like this (meaning the LUA for the tools won't work either):

Posted Image

Edited by Nazgûl, 10 September 2008 - 11:40 PM.

// C}{riZpc_punch.gif
"Do not come between the Nazgûl and his mod!"
SEE_Banner_2008.jpg
SEE-Team_Leader.jpg
----------------------------------------------------------------------------------------------------
>>>>>>>>>>>>>>>>>>>>>>> I S.E.E. YOU! <<<<<<<<<<<<<<<<<<<<<<<
----------------------------------------------------------------------------------------------------


#656 Rob38

Rob38

    Believer of Hope

  • Hosted
  • 3,567 posts
  • Location:USA
  • Projects:Helm's Deep Last Hope
  •  One who is not afraid of new challenges

Posted 11 September 2008 - 02:47 AM

Hmmm... don't see anything wrong with the code. Now, what do you mean by "the Miner horde code made the Guardians have the exact same error." How did one horde interfere with another one? Something doesn't seem right there. There seems to be a conflict with something else. And why isn't the LUA working? It should be, regardless of how the horde is working since the LUA is attached to the unit's file.

signature_group1.gif

 

16821.png


#657 Nazgûl

Nazgûl

    S.E.E. Team Leader

  • Hosted
  • 10,582 posts
  • Location:Sweden
  • Projects:BFME2 - Nazgûl's Special Extended Edition
  •  Veteran

Posted 11 September 2008 - 01:50 PM

Yeah I know, it's REALLY odd :( The LUA should work regardless, but it doesn't. The unit INI refers to the LUA codes, like all other LUA related units, but it won't work...

XML
<EventList Name="DwarvenMinerFunctions" Inherit="InfantryFunctions">
	<EventHandler EventName="OnCreated"				ScriptFunctionName="OnDwarvenMinerCreated" DebugSingleStep="false"/>
	</EventList>

LUA
function OnDwarvenMinerCreated(self)
	--They will be barely randomly, and they have 5 skins....20 possibilities
	ObjectHideSubObjectPermanently( self, "SHOVEL", true )
	ObjectHideSubObjectPermanently( self, "PICKAXE", true )
	
	local arms = GetRandomNumber()

	if arms <= 0.50 then
		ObjectHideSubObjectPermanently( self, "SHOVEL", false )
	else
		ObjectHideSubObjectPermanently( self, "PICKAXE", false )
	end
	
end

And like seen in this thread earlier, the Miner Horde code was in DwarvenHordes.INI. When it was placed there, it somehow corrupted/got mixed/interfered with the Guardian horde code, and made the Guardians look like that too - meaning all clumped together into a single pile of units. When I removed the Miner horde code from the DwarvenHordes.INI, the Guardians worked as usual again.

But the Miners won't, as you can see =/ I thought it might be a conflict with the Obsolete DwarvenMiner unit, so I renamed the new miner to DwarvenMiner_SEE. Same with the Horde! It still didn't help. God I hate modding sometimes... this has slowed me down for a whole week.

// C}{riZpc_punch.gif
"Do not come between the Nazgûl and his mod!"
SEE_Banner_2008.jpg
SEE-Team_Leader.jpg
----------------------------------------------------------------------------------------------------
>>>>>>>>>>>>>>>>>>>>>>> I S.E.E. YOU! <<<<<<<<<<<<<<<<<<<<<<<
----------------------------------------------------------------------------------------------------


#658 Skywaters

Skywaters

    Schnell, Schnell, Kartoffelkopf!

  • Members
  • 357 posts
  • Projects:Command Imperium
  •  Eccentric Philantrophist

Posted 11 September 2008 - 01:51 PM

I had this problem but 2 weeks ago and now my brain won't remember it.

I know this, the horde is absolutely fine. It's something to do with the command button / unit.

Nazgul, can you post the command button entry (and re-post the full code, for some reason it's really screwed and really hard to read on mine).

But yeah, if it's the same problem, I <think> I know the answer
Posted Image

#659 Nazgûl

Nazgûl

    S.E.E. Team Leader

  • Hosted
  • 10,582 posts
  • Location:Sweden
  • Projects:BFME2 - Nazgûl's Special Extended Edition
  •  Veteran

Posted 11 September 2008 - 03:16 PM

Thanks for offering help... ;)

Here's the CommandButton:
[codeCommandButton Command_ConstructDwarvenMinerHorde
Command = UNIT_BUILD
Object = DwarvenMinerHorde_SEE
Options = CANCELABLE
TextLabel = CONTROLBAR:ConstructDwarvenMinerHorde
ButtonImage = BDHallofWarriors_DwarvenGuardian
ButtonBorderType = BUILD
DescriptLabel = CONTROLBAR:ToolTipBuildDwarvenMinerHorde
Radial = Yes
InPalantir = Yes
ShowProductionCount = Yes
End][/code]

And here's the full non-boxed code for the Miners:
(It's pretty much a copy of Guardians, but with new models and new macros)
Object DwarvenMiner_SEE
; *** ART Parameters ***

	SelectPortrait		 =  UPDwarvenGuardian
	ButtonImage		= WOR_Guardian

	Draw = W3DHordeModelDraw ModuleTag_01
		OkToChangeModelColor = Yes	
		StaticModelLODMode = Yes
		
	; specify options for static LODs
		LodOptions							= LOW
			AllowMultipleModels				= M_ALLOW_MULTIPLE_MODELS_LOW
			MaxRandomTextures				= M_MAX_RANDOM_TEXTURES_LOW
			MaxRandomAnimations				= M_MAX_RANDOM_ANIMATIONS_LOW
			MaxAnimFrameDelta				= M_MAX_ANIM_FRAME_DELTA_LOW
		End
		
		LodOptions							= MEDIUM
			AllowMultipleModels				= M_ALLOW_MULTIPLE_MODELS_MED
			MaxRandomTextures				= M_MAX_RANDOM_TEXTURES_MED
			MaxRandomAnimations				= M_MAX_RANDOM_ANIMATIONS_MED
			MaxAnimFrameDelta				= M_MAX_ANIM_FRAME_DELTA_MED
		End
		
		LodOptions							= HIGH
			AllowMultipleModels				= M_ALLOW_MULTIPLE_MODELS_HIGH
			MaxRandomTextures				= M_MAX_RANDOM_TEXTURES_HIGH
			MaxRandomAnimations				= M_MAX_RANDOM_ANIMATIONS_HIGH
			MaxAnimFrameDelta				= M_MAX_ANIM_FRAME_DELTA_HIGH
		End

		WadingParticleSys = WaterRipplesTrail ; used when the unit is wading in shallow water.
;;================ MODELS =================================================================
		DefaultModelConditionState
			Model			   = eudwminer //EUDwarfGua_SKN
			Skeleton			= EUDwarfGua_SKL
		End

		ModelConditionState WEAPONSET_PLAYER_UPGRADE
			Model			   = eudwminer //EUDwarfGua_SKN
			Skeleton			= EUDwarfGua_SKL
		End
		
		ModelConditionState = USER_4	; This state is used in cinematics to get the old style armor
			Model			   = eudwminer //EUDwarfGua_SKN
			Skeleton			= EUDwarfGua_SKL
		End

;;=============== ANIMATIONS ===============================================================

;;======= FALLING & FLYING

		AnimationState						= PASSENGER
			Animation						= Grabbed
				AnimationName				= EUDwarfGua_LEPB; Don't have real flailing anim, needs to be replaced
				AnimationMode				= LOOP
			End
		End
		
		AnimationState						= THROWN_PROJECTILE
			Animation		   			= FlyA
				AnimationName		   		= EUDwarfGua_FLYA
				AnimationMode	   		= LOOP
			End
			Animation		   			= FlyB
				AnimationName		   		= EUDwarfGua_FLYB
				AnimationMode	   		= LOOP
			End
			Animation		   			= FlyC
				AnimationName		   		= EUDwarfGua_FLYC
				AnimationMode	   		= LOOP
			End
			Flags			   			= RANDOMSTART
		End
		
		AnimationState						= FREEFALL
			Animation						= FallingA
				AnimationName				= EUDwarfGua_FLYA
				AnimationMode				= LOOP
				AnimationBlendTime			= 10
			End
			Animation						= FallingB
				AnimationName				= EUDwarfGua_FLYB
				AnimationMode				= LOOP
				AnimationBlendTime			= 10
			End
			Animation						= FallingC
				AnimationName				= EUDwarfGua_FLYC
				AnimationMode				= LOOP
				AnimationBlendTime			= 10
			End
		End

		
		
		AnimationState						= STUNNED_FLAILING 
			Animation		   			= FlyA
				AnimationName	   		= EUDwarfGua_FLYA
				AnimationMode	   		= LOOP
				AnimationSpeedFactorRange	= 0.3 0.5
			End
			Animation		   			= FlyB
				AnimationName	   		= EUDwarfGua_FLYB
				AnimationMode	   		= LOOP
				AnimationSpeedFactorRange	= 0.3 0.5
			End
			Animation		   			= FlyC
				AnimationName	   		= EUDwarfGua_FLYC
				AnimationMode	   		= LOOP
				AnimationSpeedFactorRange	= 0.3 0.5
			End
			Flags			   			= RANDOMSTART
		End
	
		AnimationState						= DYING BURNINGDEATH
			Animation
				AnimationName				= EUDwarfGua_DIEA
				AnimationMode				= ONCE
				AnimationBlendTime			= 10
			End
			Animation
				AnimationName				= EUDwarfGua_DIEB
				AnimationMode				= ONCE
				AnimationBlendTime			= 10
			End
			Animation
				AnimationName				= EUDwarfGua_DIEC
				AnimationMode				= ONCE
				AnimationBlendTime			= 10
			End
			ParticleSysBone	 = BAT_HEAD FireBuildingLargeSmoke FollowBone:yes
			ParticleSysBone	 = BAT_HEAD FireSmall FollowBone:yes
			ParticleSysBone	 = B_SPINE1 FireBuildingLargeSmoke FollowBone:yes
			ParticleSysBone	 = B_SPINE1 FireSmall FollowBone:yes
			ParticleSysBone	 = B_SPINE2 FireBuildingLargeSmoke FollowBone:yes
			ParticleSysBone	 = B_SPINE2 FireSmall FollowBone:yes
		End
	
		AnimationState = DYING SPLATTED
			Animation 						= Splatted_On_Ground
				AnimationName 				= EUDwarfGua_LNDA
				AnimationMode 				= ONCE
			End
			EnteringStateFX	= FX_HumanBodyGroundHit_SEE;FX_OrcHitGround
		End
	
		AnimationState = DYING AFLAME
			Animation
				AnimationName				= EUDwarfGua_DIEA
				AnimationMode				= ONCE
				AnimationBlendTime			= 10
			End
			Animation
				AnimationName				= EUDwarfGua_DIEB
				AnimationMode				= ONCE
				AnimationBlendTime			= 10
			End
			Animation
				AnimationName				= EUDwarfGua_DIEC
				AnimationMode				= ONCE
				AnimationBlendTime			= 10
			End
			ParticleSysBone	 = BAT_HEAD FireBuildingLargeSmoke FollowBone:yes
			ParticleSysBone	 = BAT_HEAD FireSmall FollowBone:yes
			ParticleSysBone	 = B_SPINE1 FireBuildingLargeSmoke FollowBone:yes
			ParticleSysBone	 = B_SPINE1 FireSmall FollowBone:yes
			ParticleSysBone	 = B_SPINE2 FireBuildingLargeSmoke FollowBone:yes
			ParticleSysBone	 = B_SPINE2 FireSmall FollowBone:yes
		End
		
		AnimationState						= DYING DEATH_2			; fading out.
			Animation
				AnimationName				= EUDwarfGua_IDLB
				AnimationMode				= LOOP
			End
		End
		
		AnimationState						= DYING
			Animation						= DIEB
				AnimationName				= EUDwarfGua_DIEA
				AnimationMode				= ONCE
			End
			Animation						= DIEB
				AnimationName				= EUDwarfGua_DIEB
				AnimationMode				= ONCE
			End
			Animation						= DIEC
				AnimationName				= EUDwarfGua_DIEC
				AnimationMode				= ONCE
			End
		End
	
		AnimationState						= PARALYZED
			Animation
				AnimationName				= EUDwarfGua_IDLA
				AnimationMode				= LOOP
			End
		End
	
		AnimationState						= BURNINGDEATH
			Animation
				AnimationName				= EUDwarfGua_MFDA
				AnimationMode				= LOOP
				Distance					= 50
			End
			Flags	= RANDOMSTART
			ParticleSysBone	 = BAT_HEAD FireBuildingLargeSmoke FollowBone:yes
			ParticleSysBone	 = BAT_HEAD FireSmall FollowBone:yes
			ParticleSysBone	 = B_SPINE1 FireBuildingLargeSmoke FollowBone:yes
			ParticleSysBone	 = B_SPINE1 FireSmall FollowBone:yes
			ParticleSysBone	 = B_SPINE2 FireBuildingLargeSmoke FollowBone:yes
			ParticleSysBone	 = B_SPINE2 FireSmall FollowBone:yes
		End


;;======= LANDING & STANDING

		AnimationState						= STUNNED_STANDING_UP
			Animation						= GTPA
				AnimationName				= EUDwarfGua_GTPA
				AnimationMode				= ONCE
				AnimationSpeedFactorRange = 1.5 1.5
			End
		End


	
		AnimationState			=	 STUNNED
			Animation			=	 Slatted_On_Ground
			AnimationName 				= EUDwarfGua_LNDA
				AnimationMode 				= ONCE
			End
			EnteringStateFX					= FX_OrcHitGround

	   End 
		
		
		AnimationState		= MOVING FIRING_OR_PREATTACK_A
			ShareAnimation		= Yes
			Animation		   = RunAndFireA
				AnimationName	   = EUDwarfGua_ATRA
				AnimationMode	   = LOOP
			End
			Animation		   = RunAndFireB
				AnimationName	   = EUDwarfGua_ATRB
				AnimationMode	   = LOOP
			End
			Animation		   = RunAndFireC
				AnimationName	   = EUDwarfGua_ATRC
				AnimationMode	   = LOOP
			End
			Flags			   = RANDOMSTART  
		End
		
;;====== TERROR
		
		AnimationState						= MOVING EMOTION_TERROR EMOTION_LOOK_TO_SKY
		;@@@KM Add distance
			Animation					= TerrorFromTheSky
				AnimationName			= EUDwarfGua_RUNA
				AnimationMode			= LOOP
			End
			Animation					= TerrorFromTheSky
				AnimationName			= EUDwarfGua_RUNB
				AnimationMode			= LOOP
			End
			Animation					= TerrorFromTheSky
				AnimationName			= EUDwarfGua_RUNC
				AnimationMode			= LOOP
			End
			Flags = RANDOMSTART
		End
		AnimationState						= MOVING EMOTION_TERROR
		;@@@KM Add distance
			Animation						= TerrorFromTheSky
				AnimationName				= EUDwarfGua_RUNA
				AnimationMode				= ONCE
			End
			Animation						= TerrorFromTheSky
				AnimationName				= EUDwarfGua_RUNB
				AnimationMode				= ONCE
			End
			Animation						= TerrorFromTheSky
				AnimationName				= EUDwarfGua_RUNC
				AnimationMode				= ONCE
			End
			Flags							= RESTART_ANIM_WHEN_COMPLETE
		End
		
;;======= BACK UP
		
		AnimationState						= MOVING BACKING_UP
		;@@@KM Add distance
			Animation						= BAKA
				AnimationName				= EUDwarfGua_BAKA
				AnimationMode				= LOOP
			End
			Animation						= BAKB
				AnimationName				= EUDwarfGua_BAKB
				AnimationMode				= LOOP
			End
			Animation						= BAKC
				AnimationName				= EUDwarfGua_BAKC
				AnimationMode				= LOOP
			End
			Flags = RANDOMSTART
		End
		
		AnimationState						= MOVING ATTACKING
			ShareAnimation					= Yes;
			Animation						= RUNA
				AnimationName				= EUDwarfGua_RUNA
				AnimationMode				= LOOP
				Distance					= 25
			End
			Flags							= RANDOMSTART
		;ParticleSysBone				= None InfantryDustTrails
		End
		
		AnimationState						= MOVING CHARGING
			ShareAnimation					= Yes;
			Animation						= RUNB
				AnimationName				= EUDwarfGua_RUNB
				AnimationMode				= LOOP
				Distance					= 30
			;AnimationSpeedFactorRange	= 0.5 0.5
			End
			Flags							= RANDOMSTART
		;ParticleSysBone				= None InfantryDustTrails
		End

		AnimationState						= MOVING
		;@@@KM - Add Distance
			ShareAnimation					= Yes;
			Animation						= RUNB
				AnimationName				= EUDwarfGua_RUNA
				AnimationMode				= LOOP
				Distance					= 30
			End
			Flags							= RANDOMSTART
		;ParticleSysBone				= None InfantryDustTrails
		End
;;======= UNCONTROLLABLY AFRAID
; This is before Attacking so it overrides it.  Normal fear is below so you don't go to little-fear in between swings.
		AnimationState						= EMOTION_UNCONTROLLABLY_AFRAID
			Animation						= FERA
				AnimationName				= EUDwarfGua_FERA
				AnimationMode				= LOOP
			End 
			Animation						= FERA
				AnimationName				= EUDwarfGua_FERB
				AnimationMode				= LOOP
			End 
			Animation						= FERA
				AnimationName				= EUDwarfGua_FERC
				AnimationMode				= LOOP
			End 
			Flags							= RANDOMSTART
		End
;;---------------------- ATTACKING ----------------------------------------------------------------
		AnimationState						= FIRING_OR_PREATTACK_A
			Animation						= ATK1
				AnimationName				= EUDwarfGua_ATKA
				AnimationMode				= ONCE
				UseWeaponTiming				= Yes
			End
			Animation						= ATK2
				AnimationName				= EUDwarfGua_ATKB
				AnimationMode				= ONCE
				UseWeaponTiming				= Yes
			End		
			Animation						= ATK3
				AnimationName				= EUDwarfGua_ATKC
				AnimationMode				= ONCE
				UseWeaponTiming				= Yes
			End
		;ParticleSysBone				= None MeleeDust
		End
;;----------------- HIT REACTIONS -------------------------------------------------------------------------

;		AnimationState						= HIT_REACTION
;			Animation						= HITA
;				AnimationName				= EUDwarfGua_HITA
;				AnimationMode				= ONCE
;			End
;		End

;;----------------- EMOTIONS ----------------------------------------------------------------
;;======= APPREHENSIVE

		AnimationState						= EMOTION_ALERT EMOTION_AFRAID
			Animation						= APPA
				AnimationName				= GUManMocap_APPA
				AnimationMode				= ONCE
			End
			Animation						= APPB
				AnimationName				= GUManMocap_APPB
				AnimationMode				= ONCE
			End
			Flags							= RANDOMSTART RESTART_ANIM_WHEN_COMPLETE
		End
		
;;======= AFRAID

		AnimationState						= EMOTION_AFRAID
			Animation						= FERA
				AnimationName				= EUDwarfGua_FERA
				AnimationMode				= LOOP
			End 
			Animation						= FERA
				AnimationName				= EUDwarfGua_FERB
				AnimationMode				= LOOP
			End 
			Animation						= FERA
				AnimationName				= EUDwarfGua_FERC
				AnimationMode				= LOOP
			End 
			Flags							= RANDOMSTART
		End

		AnimationState						= ATTACKING
			Animation						= ALERT_1
				AnimationName				= EUDwarfGua_IDLA
				AnimationMode				= LOOP
			End
		End

;;======== POINTING

		AnimationState						= EMOTION_POINTING
			Animation						= Pointing1B
				AnimationName				= EUDwarfGua_PNTB 
				AnimationMode				= LOOP
			End
			Animation						= Pointing1C
				AnimationName				= EUDwarfGua_PNTC 
				AnimationMode				= LOOP
			End
			Flags							= RANDOMSTART
		End

;;======= TAUNTING

		AnimationState						= EMOTION_TAUNTING
			Animation						= Taunting1A
				AnimationName				= EUDwarfGua_TNTA 
				AnimationMode				= LOOP
			End
			Animation						= Taunting1B
				AnimationName				= EUDwarfGua_TNTB
				AnimationMode				= LOOP
			End
			Animation						= Taunting1C
				AnimationName				= EUDwarfGua_TNTC
				AnimationMode				= LOOP
			End
			Flags							= RANDOMSTART
		End

;;======= CELEBRATING

		AnimationState						= EMOTION_CELEBRATING
			Animation						= CHRA
				AnimationName				= EUDwarfGua_CHRA
				AnimationMode				= LOOP
			End
			Animation						= Taunting1B
				AnimationName				= EUDwarfGua_CHRB
				AnimationMode				= LOOP
			End
			Animation						= Taunting1C
				AnimationName				= EUDwarfGua_CHRC
				AnimationMode				= LOOP
			End
			Flags							= RANDOMSTART
		End
		
;;----------------- ALERT STATE ---------------------------------------------------------------------------

		AnimationState						= EMOTION_ALERT
			Animation						= ALERT_1
				AnimationName				= EUDwarfGua_IDLA
				AnimationMode				= LOOP;ONCE
				AnimationPriority			= 10
			End
			Flags							= RESTART_ANIM_WHEN_COMPLETE; acts like an idle animation & keeps running the animations.
		End
		
		AnimationState						= RAISING_FLAG
			Animation						= Taunting1A
				AnimationName				= EUDwarfGua_CHRA
				AnimationMode				= ONCE
				AnimationSpeedFactorRange	= 0.9 1.1
			End
			Animation						= Taunting1B
				AnimationName				= EUDwarfGua_CHRB
				AnimationMode				= ONCE
				AnimationSpeedFactorRange	= 0.9 1.1
			End
			Animation						= Taunting1C
				AnimationName				= EUDwarfGua_CHRC
				AnimationMode				= ONCE
				AnimationSpeedFactorRange	= 0.9 1.1
			End
			Flags							= RESTART_ANIM_WHEN_COMPLETE
		End

;;----------------- SELECTED STATES -----------------------------------------------------------------------
		AnimationState		= SELECTED
			StateName		   = STATE_Selected
			Animation		   = ATNB
				AnimationName	 = EUDwarfGua_ATNB
				AnimationMode	 = LOOP
			End
			
			BeginScript
				Prev = CurDrawablePrevAnimationState()
				if Prev == "STATE_Idle" 
				then 
					CurDrawableSetTransitionAnimState("TRANS_IdleToSelected") 
				end
				if CurDrawableModelcondition("ATTACKING")
				then
					return "IDLA"
				else
					return "ATNA"
				end
			EndScript
			
			BeginScript
				Prev = CurDrawablePrevAnimationState()
				if Prev == "STATE_Idle" then CurDrawableSetTransitionAnimState("TRANS_IdleToSelected") end
			EndScript
		End
		
;;----------------- IDLE STATES ---------------------------------------------------------------------------
		AnimationState				= WEAPONSET_PLAYER_UPGRADE
			StateName				= STATE_Idle
			Animation				= IDLB
				AnimationName	   = EUDwarfGua_IDLB
				AnimationMode	   = ONCE
				AnimationSpeedFactorRange = 0.9 1.1
			End
			Animation				= IDLC
				AnimationName	   = EUDwarfGua_IDLC
				AnimationMode	   = ONCE
				AnimationSpeedFactorRange = 0.9 1.1
			End
			Animation				= IDLD
				AnimationName	   = EUDwarfGua_IDLD
				AnimationMode	   = ONCE
				AnimationSpeedFactorRange = 0.9 1.1
			End
			Animation				= CHRA
				AnimationName	   = EUDwarfGua_CHRA
				AnimationMode	   = ONCE
				AnimationSpeedFactorRange = 0.9 1.1
			End
			Animation				= CHRB
				AnimationName	   = EUDwarfGua_CHRB
				AnimationMode	   = ONCE
				AnimationSpeedFactorRange = 0.9 1.1
			End
			Flags					= RESTART_ANIM_WHEN_COMPLETE			
			BeginScript
				Prev = CurDrawablePrevAnimationState()
				if Prev == "STATE_Selected" then CurDrawableSetTransitionAnimState("TRANS_SelectedToIdle") end
			EndScript
		End		
		AnimationState				= USER_3
			StateName				= STATE_User_3
			Animation				= GUARD_STANCE
				AnimationName		= GUManMocap_IDLA
				AnimationMode		= LOOP
			End
		End
		IdleAnimationState
		   ;AllowRepeatInRandomPick = no
		   ;Flags = RANDOMSTART
			StateName				= STATE_Idle
			Animation				= IDLA
				AnimationName	   = EUDwarfGua_IDLA;default idle
				AnimationMode	   = ONCE
				AnimationPriority   = 100 
				AnimationSpeedFactorRange = 0.9 1.1
				AnimationBlendTime	= 15
			End
			Animation				= IDLB
				AnimationName	   = EUDwarfGua_IDLB;figet idle, similar to IDLA, should be used sparingly
				AnimationMode	   = ONCE
				AnimationPriority   = 10
				AnimationSpeedFactorRange = 0.9 1.1
				AnimationBlendTime	= 15
			End
			Animation				= IDLC
				AnimationName	   = EUDwarfGua_IDLC;bored idle --similar to IDLD but longer
				AnimationMode	   = ONCE
				AnimationPriority   = 5
				AnimationSpeedFactorRange = 0.9 1.1
				AnimationBlendTime	= 15
			End
			Animation				= IDLD
				AnimationName	   = EUDwarfGua_IDLD;bored idle --similar to IDLC but shorter
				AnimationMode	   = ONCE
				AnimationPriority   = 7
				AnimationSpeedFactorRange = 0.9 1.1
				AnimationBlendTime	= 15
			End
			BeginScript
				Prev = CurDrawablePrevAnimationState()
				if Prev == "STATE_Selected" then CurDrawableSetTransitionAnimState("TRANS_SelectedToIdle") end
			EndScript
		End
;;--------------- TRANSITIONS ---------------------------------------------------------------------------
		TransitionState	   = TRANS_IdleToSelected
			Animation		   = ATNA
				AnimationName	 = EUDwarfGua_ATNA
				AnimationMode	 = ONCE
				AnimationSpeedFactorRange = 0.9 1.0
				
			End
		End
		TransitionState		= TRANS_SelectedToIdle
			Animation			= ATNC
				AnimationName	= EUDwarfGua_ATNC
				AnimationMode	= ONCE
				AnimationSpeedFactorRange = 0.9 1.0
			End
		End
	End
	
	#include "..\..\..\includes\StunDrawModuleSmall.inc"

;// ***DESIGN parameters ***
	Side				= Dwarves
	EditorSorting		= UNIT
	ThreatLevel			= 1.0
	ThingClass			= HORDE_UNIT
	CommandPoints		= 4
	BountyValue			= M_DWARVEN_MINER_BOUNTY_VALUE
	
;EmotionRange		= 240;// Make sure this value is greater than the fear distribution range. 

	TransportSlotCount = M_TRANSPORTSLOTCOUNT_UNIT
	
;;; WEAPON SETS;;;
	WeaponSet
		Conditions			= None 
		Weapon				= PRIMARY	DwarvenGuardianAxe
		AutoChooseSources	= PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
	End

	WeaponSet
		Conditions			= PLAYER_UPGRADE
		Weapon				= PRIMARY	DwarvenGuardianSiegeHammer_SEE
		AutoChooseSources	= PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
	End

; WeaponSet
	; Conditions = WEAPONSET_TOGGLE_1
	; Weapon = PRIMARY	DwarvenGuardianAxe
	; Weapon = SECONDARY	DwarvenBatteringRam
	; OnlyAgainst = SECONDARY MINE
; End

;;; ARMOR SETS;;;
	ArmorSet
		Conditions	  = None
		Armor		   = DwarvenAxeThrowerArmor
		DamageFX		= NormalDamageFX
	End
	ArmorSet
		Conditions	  = PLAYER_UPGRADE
		Armor		   = DwarvenAxeThrowerHeavyArmor
		DamageFX	   = NormalDamageFX
	End
	
	VisionRange = M_VISION_STANDARD_MELEE_HORDEMEMBER;M_DWARVEN_GUARDIAN_VISION_RANGE
	VisionSide = 35%
	VisionRear = 25%
; VisionBonusPercentPerFoot = 1.0%   ;------------ Modified by Sûlherokhh (was 2%)
; MaxVisionBonusPercent = 300%
; VisionBonusTestRadius = 200
	ShroudClearingRange = M_SHROUD_CLEAR_STANDARD				

	DisplayName					= OBJECT:DwarvenMiner
	CrushableLevel				= 0	;//What am I?:		0 = for infantry, 1 = for trees, 2 = general vehicles
	CrusherLevel					= 1 
	CrushWeapon					= GuardianCrush  
	
	CrushOnlyWhileCharging		= yes;// the guardian is only supposed to crush during his special charge ability
	
	MinCrushVelocityPercent 	= 50%;// Has to be moving at least xx% of full speed
	CrushDecelerationPercent	= 90%;// Lose xx% max velocity when crushing -- thus they only crush 1 row of infantry
	CrushKnockback				= 40;// how hard we knock back crushed units.
	CrushZFactor				= 1.0;// How much we knock upwards.
	
	CrushRevengeWeapon			= BasicInfantryCrushRevenge
	
	CommandSet					= DwarvenMinerCommandSet


;//--- AUDIO Parameters ---

;VoiceAmbushed							= DwarfGuardianVoiceAmbushed	
	VoiceAttack								= DwarfGuardianVoiceAttack
	VoiceAttackCharge						= DwarfGuardianVoiceAttackCharge
	VoiceAttackMachine						= DwarfGuardianVoiceAttack
	VoiceAttackStructure					= DwarfGuardianVoiceAttackBuilding
	VoiceCreated							= DwarfGuardianVoiceSalute
	VoiceFullyCreated 						= DwarfGuardianVoiceSalute
	VoiceGuard								= DwarfGuardianVoiceMove
	VoiceMove								= DwarfGuardianVoiceMove
	VoiceMoveToCamp							= DwarfGuardianVoiceMoveCamp
	VoiceMoveWhileAttacking					= DwarfGuardianVoiceDisengage
	VoicePriority							= 47
	VoiceRetreatToCastle					= DwarfGuardianVoiceRetreat		
	VoiceSelect								= DwarfGuardianVoiceSelectMS
	VoiceSelectBattle 						= DwarfGuardianVoiceSelectBattle			

	VoiceEnterStateAttack					= DwarfGuardianVoiceEnterStateAttack
	VoiceEnterStateAttackCharge				= DwarfGuardianVoiceEnterStateAttackCharge
	VoiceEnterStateAttackMachine			= DwarfGuardianVoiceEnterStateAttackBuilding
	VoiceEnterStateAttackStructure			= DwarfGuardianVoiceEnterStateAttackBuilding
	VoiceEnterStateMove						= DwarfGuardianVoiceEnterStateMove
	VoiceEnterStateMoveToCamp				= DwarfGuardianVoiceEnterStateMoveCamp
	VoiceEnterStateMoveWhileAttacking		= DwarfGuardianVoiceEnterStateDisengage
	VoiceEnterStateRetreatToCastle			= DwarfGuardianVoiceEnterStateRetreat

	SoundImpact								= ImpactHorse

	UnitSpecificSounds
		VoiceGarrison						= DwarfGuardianVoiceMoveGarrison
		VoiceEnterUnitElvenTransportShip	= DwarfGuardianVoiceMoveShip
		VoiceInitiateCaptureBuilding		= DwarfGuardianVoiceCaptureBuilding
	;VoiceEnterStateInitiateCaptureBuilding	=
	End

	#include "..\..\..\includes\StandardUnitEvaEvents.inc"

	CrowdResponseKey = Dwarf

	Behavior = LargeGroupAudioUpdate ModuleTag_LGAU
		Key = Humanoid_Male Dwarf Dwarf_Male Dwarf_Guardian
	End
	
	ClientBehavior = ModelConditionAudioLoopClientBehavior ModuleTag_foo
		ModelCondition = Required:EMOTION_CELEBRATING	Excluded:DYING ENGAGED	Sound:EmotionDwarfCompilationVoxCheerSinglesLoop;MOVING ATTACKING
		ModelCondition = Required:EMOTION_POINTING		Excluded:DYING ENGAGED	Sound:EmotionDwarfCompilationVoxTauntSinglesLoop;MOVING ATTACKING
		ModelCondition = Required:EMOTION_TAUNTING		Excluded:DYING ENGAGED	Sound:EmotionDwarfCompilationVoxTauntSinglesLoop;MOVING ATTACKING
		ModelCondition = Required:RAISING_FLAG			Excluded:DYING ENGAGED	Sound:EmotionDwarfCompilationVoxTauntSinglesLoop
	End

; Change selection sounds based on upgrades
	ClientBehavior = UpgradeSoundSelectorClientBehavior ModuleTag_UpgradeSoundSelector
		SoundUpgrade		= Upgrade_DwarvenSiegeHammer					; EVERYTHING on this line must be present
	;ExcludedUpgrades	= Upgrade_OpenGarrison Upgrade_TrebuchetTurret	; NOTHING on this line can be present
			VoiceAttack		= DwarfGuardianVoiceAttackHammer
			VoiceAttack		= DwarfGuardianVoiceEnterStateAttackHammer
		End
	End

	ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
		MaxUpdateRangeCap = 800
;		AnimationSound = Sound: TauntHumanHitShield	Animation:GUMAArms_SKL.GUManMocap_IDLC	Frames: 17 27
		AnimationSound = Sound:BodyFallOrc			Animation:EUDWARFGUA_SKL.EUDWARFGUA_LNDA	Frames:4
;		AnimationSound = Sound:AxeDropSoundHere!	Animation:EUDWARFGUA_SKL.EUDWARFGUA_DIEA	Frames:8	;axe falls
		AnimationSound = Sound:BodyFallGeneric2		Animation:EUDWARFGUA_SKL.EUDWARFGUA_DIEA	Frames:45
;		AnimationSound = Sound:AxeDropSoundHere!	Animation:EUDWARFGUA_SKL.EUDWARFGUA_DIEB	Frames:8	;axe falls
		AnimationSound = Sound:BodyFallGeneric2		Animation:EUDWARFGUA_SKL.EUDWARFGUA_DIEB	Frames:28
		AnimationSound = Sound:BodyFallGeneric2		Animation:EUDWARFGUA_SKL.EUDWARFGUA_DIEC	Frames:45
	End

; *** ENGINEERING Parameters ***

	RadarPriority = UNIT
	KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS INFANTRY PATH_THROUGH_EACH_OTHER SCORE THROWN_OBJECT ATTACK_NEEDS_LINE_OF_SIGHT NOTIFY_OF_PREATTACK GRAB_AND_DROP
	
	Body = ActiveBody ModuleTag_02
		CheerRadius 		= M_EMOTION_CHEER_RADIUS
		MaxHealth			= M_DWARVEN_MINER_HEALTH
		MaxHealthDamaged	= M_DWARVEN_MINER_HEALTH_DAMAGED
		BurningDeathBehavior = Yes
		BurningDeathFX	   = FX_InfantryBurningFlame
	End
	
	
;//-----UPGRADES------
;--Weapon--
	Behavior = WeaponSetUpgrade WeaponSetUpgradeModuleTagGuardian
		TriggeredBy = Upgrade_DwarvenSiegeHammer;;Upgrade_DwarvenForgedBlades
		ConflictsWith = Upgrade_DwarvenForgedBlades;;
	End

; Behavior = WeaponSetUpgrade WeaponSetUpgradeModuleTagGuardian
	; TriggeredBy = Upgrade_DwarvenForgedBlades
; End

	Behavior = SubObjectsUpgrade ForgedBlade_UpgradeGuardian
		TriggeredBy		= Upgrade_DwarvenForgedBlades
		ConflictsWith = Upgrade_DwarvenSiegeHammer;;
		ShowSubObjects	= Forged_Blade
	End	
	
;--Siege Hammer
	Behavior = SubObjectsUpgrade SiegeHammer_UpgradeGuardian
		TriggeredBy		= Upgrade_DwarvenSiegeHammer
		ConflictsWith 	= Upgrade_DwarvenForgedBlades;;
		HideSubObjects	= axe shield
		ShowSubObjects	= hammer1
	End	
	
;--Armor--
	Behavior = ArmorUpgrade ArmorUpgradeModuleTagGuardian
		TriggeredBy = Upgrade_DwarvenMithrilMail
		ArmorSetFlag			= PLAYER_UPGRADE
	   ;KillArmorUpgrade = Yes;This cancels any previous armor upgrade.
	End
	
	Behavior = SubObjectsUpgrade Armor_UpgradeGuardian
		TriggeredBy		= Upgrade_DwarvenMithrilMail
		UpgradeTexture	= EUDwarfMin.tga 0 EUDwarfMin_HA.tga
		RecolorHouse	= Yes
		ExcludeSubobjects = Forged_Blade
	End
	
		
	Behavior = AIUpdateInterface ModuleTag_03
		AutoAcquireEnemiesWhenIdle	=	Yes ATTACK_BUILDINGS
		MoodAttackCheckRate			=	500
		AILuaEventsList				=	DwarvenMinerFunctions
		MinCowerTime				=	3000
		MaxCowerTime				=	5000
		AttackPriority				= 	AttackPriority_Cavalry
		BurningDeathTime			=	M_BURNINGDEATH_DURATION_INFANTRY
	End

	LocomotorSet
		Locomotor = HumanSpecialChargeLocomotor
		Condition = SET_NORMAL 
		Speed	 = M_NORMAL_GOOD_INFANTRY_MEMBER_SPEED
	End

	LocomotorSet
		Locomotor = BurningDeathLocomotorInfantry
		Condition = SET_BURNINGDEATH
		Speed	  = M_BURNINGDEATH_WANDERSPEED_INFANTRY
	End

	Behavior = PhysicsBehavior ModuleTag_04
		GravityMult				= 1.0
		ShockStunnedTimeLow		= 1400;msec
		ShockStunnedTimeHigh	= 2400;msec
		ShockStandingTime		= 666;msec
	End 

  Behavior = FlammableUpdate ModuleTag_BurningDeathPromotor
		AflameDuration		= M_TROOP_AFLAME_DURATION	// If I catch fire, I'll burn for this long...
		AflameDamageAmount	= M_TROOP_AFLAME_DAMAGE_AMOUNT			// taking this much damage...
		AflameDamageDelay	= M_TROOP_AFLAME_DAMAGE_DELAY		// this often.
		FlameDamageLimit	= M_TROOP_FLAME_DAMAGE_LIMIT
		FlameDamageExpiration		= M_TROOP_FLAME_DAMAGE_EXPIRATION
	End
  
	Behavior = AttributeModifierUpgrade ModuleTag_AMU
		TriggeredBy			= Upgrade_GondorFighterFearless
		AttributeModifier	= FearlessForever
	End
	 
	Behavior = AttributeModifierUpgrade ModuleTag_SHU
		TriggeredBy			= Upgrade_DwarvenSiegeHammer
		AttributeModifier	= DwarvenSiegeHammer
	End
	 
	 
	Behavior = SquishCollide ModuleTag_06
	;//nothing
	End
	
	Behavior = HordeMemberCollide ModuleTag_HMC
	;//nothing
	End
	
;	Behavior = HitReactionBehavior HitReactionBehaviorModuleTag
;		HitReactionLifeTimer1 = 2500; level 1 (light  damage)  hit reaction animations in ms
;		HitReactionLifeTimer2 = 2500; level 2 (medium damage)  hit reaction animations in ms
;		HitReactionLifeTimer3 = 2500; level 3 (heavy  damage)  hit reaction animations in ms

;		HitReactionThreshold1 = 5.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
		
;		FastHitsResetReaction = Yes	If set -- when hits occur faster than the reaction animations, it will reset the animation. (like getting riddled with machine gun bullets)
;	End

	Behavior = SlowDeathBehavior ModuleTag_05
		DeathTypes			= ALL -KNOCKBACK -FADED -NORMAL
		SinkDelay			= 3000
		SinkRate			= 0.90	; in Dist/Sec
		DestructionDelay	= 15000
		Sound				= INITIAL DwarfGenericVoiceDie
	End
	
	Behavior = SlowDeathBehavior ModuleTag_07
	;// Same as normal death, but no sound (sound already played by SoundImpact = ... )
		DeathTypes			= NONE +KNOCKBACK
		SinkDelay			= 3000
		SinkRate			= 0.60	; in Dist/Sec
		DestructionDelay	= 10000
	End
	
	Behavior = SlowDeathBehavior ModuleTag_FadeDeath
		DeathTypes			= NONE +FADED
		FadeDelay			= 0
		FadeTime			= 5000
		DestructionDelay	= 5000
		DeathFlags			= DEATH_2
;		FX					= INITIAL FX_UnSummonElvenAllies
		Sound = INITIAL SpellGenericUnsummonMS
	End	

  #include "..\..\..\..\includes\GiantBirdDroppingHumanBody_SEE.inc"


;//--- NEW DWARVEN CHARGE ABILITY ---
  Behavior = SpecialPowerModule ModuleTag_ChargeStarter					  
		SpecialPowerTemplate		= SpecialAbilityDwarvenCharge
		UpdateModuleStartsAttack	= Yes
		InitiateSound				= DwarfGuardianBullRushMS
	End
	#include "..\..\..\includes\DwarvenChargeUpdate.inc"
	
	Behavior = CommandSetUpgrade ModuleTag_commandGuardian
		TriggeredBy = Upgrade_DwarvenForgedBlades Upgrade_DwarvenSiegeHammer
		RequiresAllTriggers	= Yes
		CommandSet = DwarvenGuardianHordeToggleCommandSet
	End	  

	Geometry			= CYLINDER
	GeometryMajorRadius = 5.6
	GeometryMinorRadius = 5.6
	GeometryHeight = 16.0
  GeometryIsSmall = Yes

	Shadow			= SHADOW_DECAL
	ShadowSizeX			= 19;
	ShadowSizeY			= 19;
	ShadowTexture		= ShadowI;
End

;-------------------------------------

Object DwarvenMinerHorde_SEE

; This is required for garrisoned objects - please put in all objects.
	ButtonImage		= WOR_Guardian
	SelectPortrait	= UPDwarvenGuardian

	Draw = W3DScriptedModelDraw ModuleTag_W3DModelDraw
	DependencySharedModelFlags = USER_8 EMOTION_ALERT EMOTION_MORALE_HIGH EMOTION_MORALE_LOW EMOTION_AFRAID EMOTION_COWER EMOTION_TERROR EMOTION_LOOK_TO_SKY SELECTED
		DefaultModelConditionState
			Model = None;InvisHrdeTmp5x2
		End

		ModelConditionState = HORDE_EMPTY
			Model = None
		End		
		
		ModelConditionState = WORLD_BUILDER
			Model = HordeMarkEUDFG
		End		
	End
	
	Side = Dwarves
	EditorSorting = UNIT
	EmotionRange = 240
	DisplayName = OBJECT:HordeDwarvenMiner
	DisplayNameStrategic = CONTROLBAR:LW_Unit_DwarvenGuardianHorde
	DescriptionStrategic = CONTROLBAR:LW_ToolTip_DwarvenGuardianHorde
	
;-----------------------------------------
 ;Prerequisites
  ;Object = DwarvenWorkPit
 ;End
;-----------------------------------------		
		
	WeaponSet
		Conditions = None 
		Weapon = PRIMARY	NormalMeleeHordeRangefinder
	End

; *** AUDIO Parameters ***;
; Note: Don't put voice parameters here -- they will be ignored. Voice play requests
; are always passed through to members
	#include "..\..\..\includes\StandardHordeEvaEvents.inc"

	UnitSpecificSounds
		VoiceDesperateAttack  = GondorSoldierVoiceDesperateCharge 
	End

	BuildCost = M_DWARVEN_MINER_BUILDCOST
	BuildTime = M_DWARVEN_MINER_BUILDTIME	  
	VisionRange = M_DWARVEN_MINER_HORDE_VISION_RANGE
	ShroudClearingRange = M_DWARVEN_MINER_SHROUD_RANGE
	VisionSide = 50%
	VisionRear = 25%
	
; MaxVisionBonusPercent = 300%
; VisionBonusTestRadius = 200
; VisionBonusPercentPerFoot = 1.0%
	CommandPoints = 60
	
	FormationWidth = 2; Width it occupies in formations. Current choices are 1 or 2.
	FormationDepth = 1; Depth it occupies in formations. Current choices are 1 or 2.
	
	CrushableLevel = 0 ;What am I?:		0 = for infantry, 1 = for trees, 2 = general vehicles
	CrusherLevel = 1 
	
	CrushOnlyWhileCharging = YES; // the guardian is only supposed to crush during his special charge ability
	
	MinCrushVelocityPercent = 50%; Has to be moving at least xx% of full speed
	CrushDecelerationPercent = 90%; Lose xx% max velocity when crushing -- thus they only crush 1 row of infantry
	
	CrushKnockback = 40 ; how hard we knock back crushed units.
	CrushZFactor = 1.0 ; How much we knock upwards.

  TransportSlotCount = M_TRANSPORTSLOTCOUNT_SMALL_HORDE
	KindOf = SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT INFANTRY HORDE MELEE_HORDE NOTIFY_OF_PREATTACK ARMY_SUMMARY LARGE_RECTANGLE_PATHFIND;;UNATTACKABLE 
	
	ThreatLevel = M_DWARVEN_MINER_HORDE_THREAT
	ThreatBreakdown DwarvenGuardianHorde_DetailedThreat
		AIKindOf = INFANTRY
	End
	
	Body = ImmortalBody ModuleTag_ImmortalBody
		MaxHealth = 1
	End
	
	#include "..\..\..\includes\CaptureBuilding.inc"
	
	Behavior = StancesBehavior ModuleTag_StancesBehavior
	StanceTemplate = FighterHorde
  End
	
	Behavior = HordeAIUpdate ModuleTag_HordeAIUpdate
		AutoAcquireEnemiesWhenIdle	= Yes ATTACK_BUILDINGS
		MoodAttackCheckRate			= 500
		MaxCowerTime				= 5000
		MinCowerTime				= 3000

		CanAttackWhileContained		= Yes ; Can fire out of garrisoned building
		AILuaEventsList				= InfantryFunctions; 
		AttackPriority				= AttackPriority_Infantry
	End

	Behavior = HordeContain ModuleTag_HordeContain
		FrontAngle = 270
		FlankedDelay = 2000
		ObjectStatusOfContained			= 
		InitialPayload					= DwarvenMiner_SEE 15
		Slots							= 15
		PassengerFilter					= NONE +INFANTRY
		ShowPips						= No
		ThisFormationIsTheMainFormation = Yes;//Used to determine which armorset to use (and anything else we want!)
		RandomOffset = X:0 Y:0
		
		MeleeBehavior = Amoeba
	End					

	; Banner Carrier info		
		BannerCarriersAllowed	= DwarvenGuardianBanner;DwarvenBanner									;// types of units that are allowed as banner carriers
		BannerCarrierPosition	= UnitType:DwarvenGuardian	Pos:X:40.0 Y:0.0		// (DEFAULT) position of banner carrier
		
		RankInfo = RankNumber:1 UnitType:DwarvenMiner_SEE Position:X:20 Y:0			Position:X:20 Y:20				Position:X:20 Y:-20				Position:X:20 Y:40				Position:X:20 Y:-40 
		RankInfo = RankNumber:2 UnitType:DwarvenMiner_SEE Position:X:0 Y:0 Leader 1 0	Position:X:0 Y:20 Leader 1 1	Position:X:0 Y:-20 Leader 1 2	Position:X:0 Y:40 Leader 1 3	Position:X:0 Y:-40 Leader 1 4
		RankInfo = RankNumber:3 UnitType:DwarvenMiner_SEE Position:X:-20 Y:0 Leader 2 0	Position:X:-20 Y:20 Leader 2 1	Position:X:-20 Y:-20 Leader 2 2	Position:X:-20 Y:40 Leader 2 3	Position:X:-20 Y:-40 Leader 2 4

		RanksToReleaseWhenAttacking		= 1 2 3;Modified by Sûlherokhh (was '1')
		
		MeleeAttackLeashDistance = 1; How far the hordes can move from the center of the horde when melee attacking.				
		BackUpMinDelayTime				= 1	;// The minimum amount of time to delay before backing up
		BackUpMaxDelayTime				= 3000;// The maximum amount of time to delay before backing up
		BackUpMinDistance				= 1	;// The minimum number of cells to backup
		BackUpMaxDistance				= 3	;// The maximum number of cells to backup
		BackupPercentage				= 80%;// The amount of chance that a unit will back up.
	End

	Behavior = PhysicsBehavior ModuleTag_PhysicsBehavior
		GravityMult = 1.0
	End
	
	Behavior = CommandButtonHuntUpdate ModuleTag_CommandButtonHuntUpdate
	End
  
	Behavior = HordeNotifyTargetsOfImminentProbableCrushingUpdate ModuleTag_NotifyCrushScan
		ScanWidth = 60.0; A little less than the width of the horde (which is 2 * 35 = 70)
	End

  Behavior = EmotionTrackerUpdate	Module_EmotionTracker
		TauntAndPointDistance		=	M_INFANTRY_TAUNT_POINT_RADIUS	; max distance to taunted/pointed objet
		TauntAndPointUpdateDelay	=	1000	; how often scan (milliseconds)
		TauntAndPointExcluded		=	NONE
 		AfraidOf					=	M_EMOTION_AFRAIDOF_OBJECTFILTER
		AlwaysAfraidOf				=	M_EMOTION_ALWAYS_AFRAIDOF_OBJECTFILTER
 		PointAt						=	M_EMOTION_POINTAT_OBJECTFILTER
		HeroScanDistance		=	150
		FearScanDistance		=	M_INFANTRY_FEAR_SCAN_RADIUS

		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	 = NormalChargeMeleeHordeLocomotor
		Condition	 = SET_NORMAL
		Speed		 = M_NORMAL_GOOD_INFANTRY_HORDE_SPEED
	End
	
	LocomotorSet
		Locomotor	 = ScaredMeleeHordeLocomotor
		Condition	 = SET_SCARED
		Speed		 = M_NORMAL_GOOD_INFANTRY_HORDE_SPEED
	End
	
	Behavior = ProductionUpdate ProductionUpdateModuleTag
		GiveNoXP = Yes
	End

	Behavior = LevelUpUpgrade ModuleTag_CreateLevelUpUpgrade
		TriggeredBy = Upgrade_DwarvenBasicTraining
		LevelsToGain = 1
		LevelCap = 2
	End
	
	Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality1
		TriggeredBy = Upgrade_DwarvenSiegeHammer
	End
	
	Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality2
		TriggeredBy = Upgrade_DwarvenForgedBlades
	End
	
	Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality3
		TriggeredBy = Upgrade_DwarvenMithrilMail
	End

	Behavior = PickupStuffUpdate ModuleTag_PickupStuffUpdate
		SkirmishAIOnly = Yes
		StuffToPickUp = NONE +CRATE
		ScanRange = 200
		ScanIntervalSeconds = 0.5
	End

;;; NEW DWARVEN CHARGE ABILITY;;;
	Behavior = UnpauseSpecialPowerUpgrade ModuleTag_ChargeUnpause
		SpecialPowerTemplate	  = SpecialAbilityDwarvenCharge
		TriggeredBy				  = Upgrade_ObjectLevel2
	End
	
  Behavior = SpecialPowerModule ModuleTag_ChargeStarter					  
		SpecialPowerTemplate	  = SpecialAbilityDwarvenCharge
		UpdateModuleStartsAttack  = Yes
		StartsPaused			  = Yes
	End
	#include "..\..\..\includes\DwarvenChargeUpdate.inc"
		
	Behavior = AutoAbilityBehavior ModuleTag_AutoAbilityBehavior
		SpecialAbility = SpecialAbilityDwarvenCharge
		MaxScanRange				= 140
		Query						= 1 ALL ENEMIES -STRUCTURE
	End

	CommandSet = DwarvenMinerHordeCommandSet
	
	Behavior = CommandSetUpgrade ModuleTag_DwarvenGuardianHordeBladesCommandSet
		TriggeredBy		= Upgrade_DwarvenForgedBlades
		ConflictsWith	= Upgrade_DwarvenSiegeHammer
		CommandSet		= DwarvenGuardianHordeBladesCommandSet_SEE
	End
;;
	Behavior = CommandSetUpgrade ModuleTag_DwarvenGuardianHordeSiegeCommandSet
		TriggeredBy		= Upgrade_DwarvenSiegeHammer
		ConflictsWith	= Upgrade_DwarvenForgedBlades
		CommandSet		= DwarvenGuardianHordeSiegeCommandSet_SEE
	End

	/////////////////////
	// AISpecialPowers
	/////////////////////
	
	#include "..\..\..\..\includes\Battlestance_SEE.inc"
	
	Behavior = AISpecialPowerUpdate DwarfGuardianCharge
		CommandButtonName = Command_DwarvenGuardianChargeAttack
		SpecialPowerAIType = AI_SPECIAL_POWER_CHARGE
	End

	Geometry = BOX
	GeometryMajorRadius = 30.0
	GeometryMinorRadius = 45.0
	GeometryHeight = 20.0
	GeometryIsSmall = No
	
	
; *** AUTO RESOLVE DATA *** 
	AutoResolveUnitType = AutoResolveUnit_Soldier
	AutoResolveCombatChain = AutoResolve_SoldierCombatChain
	
	AutoResolveBody = AutoResolve_DwarvenGuardianHordeBody
	
	AutoResolveArmor
		RequiredUpgrades = Upgrade_DwarvenMithrilMail
		Armor = AutoResolve_DwarvenGuardianHeavyArmor
	End

	AutoResolveArmor
		ExcludedUpgrades = Upgrade_DwarvenMithrilMail
		Armor = AutoResolve_DwarvenGuardianArmor
	End

	AutoResolveWeapon
		RequiredUpgrades = Upgrade_DwarvenForgedBlades
		Weapon = AutoResolve_DwarvenGuardianUpgradedWeapon
	End

	AutoResolveWeapon
		ExcludedUpgrades = Upgrade_DwarvenForgedBlades
		Weapon = AutoResolve_DwarvenGuardianWeapon
	End
	
	WorldMapArmoryUpgradesAllowed = Upgrade_DwarvenBasicTraining Upgrade_DwarvenForgedBlades Upgrade_DwarvenMithrilMail
End

// C}{riZpc_punch.gif
"Do not come between the Nazgûl and his mod!"
SEE_Banner_2008.jpg
SEE-Team_Leader.jpg
----------------------------------------------------------------------------------------------------
>>>>>>>>>>>>>>>>>>>>>>> I S.E.E. YOU! <<<<<<<<<<<<<<<<<<<<<<<
----------------------------------------------------------------------------------------------------


#660 Skywaters

Skywaters

    Schnell, Schnell, Kartoffelkopf!

  • Members
  • 357 posts
  • Projects:Command Imperium
  •  Eccentric Philantrophist

Posted 12 September 2008 - 01:59 PM

Hmm.

So far everything looks alright.. but then again I haven't slept in 96 hours (insomnia) so I could be wrong.

Try this though, as i've seen the engine be really really funny before.

Do one or both of these

A) Change DwarvenMiner. Because it's already in the obselete.ini file, that could be blocking it
B) Remove _SSE and just make it SSE or name it something altogether.

I could be wrong, but they are just off the top of my head thoughts because i've seen it go weird before.
Posted Image




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users