; This file holds both the CrateData structures that define the conditions
; for creating a crate and the Objects that represent Crates in the game world
; which are simply Objects with CrateCollide modules.
; A CrateData name is what a CrateDie module will reference in its DieData.
; A Crate is an Object referenced by a CrateData in the CrateObject field to get created on success.
; CreationChance is the only Condition that is mandatory, since it defaults to zero.
; Below the definitions of CrateData are the actual Crate Objects. The only important parts there are the
; name of the model, the type of Collide module, and the data to that module.
; Also included is a sample Die module that must be added to the object in Faction*.ini.
; The CrateData entry is what connects the crate listings here to the objects that make them.
; Multiple CrateData entries mean AND, multiple CrateObject entries mean OR.
; Remember that, it will make total sense in a minute.
; -=-=-=-=-=-=- EXAMPLE -=-=-=-=-=-=-
; ***Give this Die Module to whomever you want to produce a crate on death
;Behavior = CreateCrateDie
;; CrateData = TestCrate ; These listings are not guarantees, the Conditions are in the CrateData
; CrateData = TestCrate2 ; These independent listings can each produce at most one Crate
;End
; ***Now define the CrateData you mentioned in the Die modules
; The CreationChance is the only required field, the other two are optional. 1.0 for Chance means always
;CrateData TestCrate
; CreationChance = 0.75 ; Between 0 and 1, this adds a random condition to this entire CrateData
; VeterancyLevel = ELITE ; REGULAR, VETERAN, ELITE, or HEROIC: This describes the victim holding the CrateDie
; KilledByType = SALVAGER ; This is the KINDOF that needs to be the killer to make the crate. This should be on the Missile as well as the Missile firing unit
;
; CrateObject = CrateTemplate 0.4 ; If all Conditions suceed, then this Object is created
; CrateObject = CrateTemplate2 0.6 ; The percent here should add up to 1.0, and allows multiple choices within the one CrateData
;
; Utility Flags:
; OwnedByMaker = Yes, to have the Crate assigned to the default team of the dead guy's player for scripting.
;End
; ***Now add one of the following CollideModules to the CrateTemplate below.
; ForbidOwnerPlayer = Yes Works with OwnedByMaker (or by explicit ownership script) to prevent a certain
; player from picking up the crate. It can be used in any CrateCollide.
; BuildingPickup = Yes lets the crate be picked up by a building, for plane drops. It can be used in any CrateCollide.
; HumanOnly = Yes let's the crate only be picked up by Humans, mostly for scripted stuff
; PickupScience Forces the player owning the unit trying to get the crate to have a certain science.
; Only some of these have CollideData.
;Behavior = HealCrateCollide ; A crate that heals everything you own, no Data
;;nothing
;End ;
;Behavior = MoneyCrateCollide ; A crate that gives x dollars
;; MoneyProvided = 2000
;End
;Behavior = SalvageCrateCollide
; WeaponChance = 100% ; If we are WeaponSalvager, this is the chance we get a WeaponSet upgrade if not fully upgraded
; LevelChance = 25% ; Either we are just a regular Salvager, or we are fully upgraded. This is the chance we gain a level
; MoneyChance = 75% ; And this is the chance we get money. Level + Money = 100%. Weapon is an idependant FirstChance
; MinMoney = 25 ; If we get money, this is how much we get. Make them different to get a random range.
; MaxMoney = 75
;End ; A crate specific to the SALVAGER type units
;Behavior = ShroudCrateCollide ; A crate that reveals the whole shroud on the map, no Data
;Behavior = UnitCrateCollide ; A crate that provides n units of type x
;; UnitCount = 1
; UnitName = AmericaTankCrusader
;End
;Behavior = VeterancyCrateCollide ; A crate that gives everyone within n distance a level if they are trainable
;; EffectRange = 20
;End
; ***Here is a default crate that just needs its Model filled out, and one appropriate Collide module plugged in
;Object CrateTemplate
; ; *** ART Parameters ***
; Draw = W3DScriptedModelDraw ModuleTag_01
; DefaultModelConditionState
; Model = BigCrate ;***Plug model here
; End
; End
;
; ; ***DESIGN parameters ***
; EditorSorting = MISC_MAN_MADE
; MaxHealth = 1.0
;
; ; *** ENGINEERING Parameters ***
; KindOf = CRATE
; Behavior = MoneyCrateCollide ;***Replace Collide module (and data if needed) here
;; MoneyProvided = 2000
; End
; Geometry = BOX
; GeometryMajorRadius = 4.0
; GeometryMinorRadius = 4.0
; GeometryHeight = 4.0
; GeometryIsSmall = Yes
;
;End
; -=-=-=-=-=-=-=-=- END EXAMPLE -=-=-=-=-=-=-=-=-
; ----------------------------------------------- Crate Data --------------------------------------
CrateData SalvageCrateData
CreationChance = 1.0
KilledByType = SALVAGER
; KillerScience = SCIENCE_GLA ; Killed by a salvager unit owned by a GLA player
CrateObject = SalvageCrate 1.0
End
CrateData EliteTankCrateData
CreationChance = .75
VeterancyLevel = ELITE
CrateObject = 1000DollarCrate .75
CrateObject = SmallLevelUpCrate .25
End
CrateData HeroicTankCrateData
CreationChance = 1.0
VeterancyLevel = HEROIC
CrateObject = 2500DollarCrate .50
CrateObject = MediumLevelUpCrate .25
CrateObject = 2FreeCrusadersCrate .25
End
;------------------------------------------------- Map specific CrateData
; *** ART Parameters *** (Any art changes made to this Object, please copy over to SalvageCrate_Final below)
Draw = W3DScriptedModelDraw ModuleTag_01
DefaultModelConditionState
Model = PchestTreasure
ParticleSysBone NONE GoldChestGlimmer
ParticleSysBone NONE GoldChestGlimmer02
ParticleSysBone NONE GoldChestRedGlimmer
ParticleSysBone NONE GoldChestGreenGlimmer
ParticleSysBone NONE GoldChestAura
End
End
; ***DESIGN parameters ***
EditorSorting = MISC_MAN_MADE
DisplayName = OBJECT:TreasureChest
Side = Civilian
; *** ENGINEERING Parameters ***
KindOf = SELECTABLE PARACHUTABLE IMMOBILE NOT_AUTOACQUIRABLE UNATTACKABLE CRATE;Only Salvage crates are marked Selectable so the Mouse can interact with them and give Salvage voices. Being dead makes them not actually selectable
ThreatLevel = 0.0
Body = HighlanderBody ModuleTag_04 ;Can take damage, but won't die. Can only die from ::kill() or other unresistable damage
KindOf = PARACHUTABLE SELECTABLE IMMOBILE NOT_AUTOACQUIRABLE UNATTACKABLE;Only Salvage crates are marked Selectable so the Mouse can interact with them and give Salvage voices. Being dead makes them not actually selectable
Body = HighlanderBody ModuleTag_04 ;Can take damage, but won't die. Can only die from ::kill() or other unresistable damage
ExecuteFX = FX_GoldChestPickup ; FXList to play when sucessfully picked up
BannerChance = 0%
LevelUpChance = 0% ; This is the chance we gain a level
LevelUpRadius = 0
ResourceChance = 100% ; And this is the chance we get money. Level + Money = 100%. Weapon is an idependant FirstChance
MinResource = 100 ; If we get money, this is how much we get. Make them different to get a random range.
MaxResource = 100
AllowAIPickup = No
End
Geometry = BOX
GeometryMajorRadius = 12.0
GeometryMinorRadius = 12.0
GeometryHeight = 12.0
GeometryIsSmall = Yes
; Shadow = SHADOW_VOLUME
Shadow = NONE
END
;------------------------------------ Ring ------------------------------------------------
Object TheDroppedRing
Draw = W3DScriptedModelDraw ModuleTag_01
DefaultModelConditionState
Model = TheRing
ParticleSysBone NONE OneRing
;ParticleSysBone NONE OneRingAura
Shadow = SHADOW_ADDITIVE_DECAL
ShadowSizeX = 200
ShadowSizeY = 200
ShadowTexture = MUCatapultFP02
ShadowMaxHeight = 200
ShadowOverrideLODVisibility = yes
End
IdleAnimationState
Animation
AnimationName = THERING.THERING
AnimationMode = LOOP
End
End
End
EditorSorting = MISC_MAN_MADE
DisplayName = OBJECT:TheOneRing
Side = Civilian
KindOf = SELECTABLE IMMOBILE NOT_AUTOACQUIRABLE UNATTACKABLE REVEAL_TO_ALL CRATE ONE_RING ; Only Salvage crates are marked Selectable so the Mouse can interact with them and give Salvage voices. Being dead makes them not actually selectable
ThreatLevel = 0.0
ShroudClearingRange = 100
Body = HighlanderBody ModuleTag_Body ;Can take damage, but won't die. Can only die from ::kill() or other unresistable damage
MaxHealth = 1.0
End
; *** AUDIO Parameters ***;
EvaEnemyObjectSightedEvent = DiscoveredRing ; This is so that we get the DiscoveredRing event if it is unstealthed when we first see it
; And this covers the case where the Ring spawns in while in sight of the player's troops
AnnouncementEventEnemy = DiscoveredRing
AnnouncementEventAlly = DiscoveredRing
AnnouncementEventOwner = DiscoveredRing
OnlyIfVisible = Yes ; Don't announce if hidden in the shroud
UseObjectsPosition = Yes ; Play from the Ring's position
CreateFakeRadarEvent = Yes ; Allow player to jump to the Ring after hearing annoucement
DelayBeforeAnnouncementMS = 1000 ; Allow 1 second before announcing. This is mostly so that if someone is right on top of the ring, we can use the pickup event to block the discovered event
; and not get two announcements
; CountAsFirstSightedAnnoucement = Yes ; Doesn't matter since this unit doesn't use EvaOnFirstSightingEventEnemy/NonEnemy