public override MapObjectCreateObjectCollection.CreateObjectsResultItem[] DieObjects_Create() { MapObjectCreateObjectCollection.CreateObjectsResultItem[] result = base.DieObjects_Create(); //paint created corpses of units to faction color foreach (MapObjectCreateObjectCollection.CreateObjectsResultItem item in result) { MapObjectCreateMapObject createMapObject = item.Source as MapObjectCreateMapObject; if (createMapObject != null) { foreach (MapObject mapObject in item.CreatedObjects) { //Corpse copy forceMaterial to meshes if (mapObject is Corpse && InitialFaction != null) { bool badFaction = InitialFaction.Name == "BadFaction"; if (Type.Name == "RTSRobot") { (mapObject.AttachedObjects[0] as MapObjectAttachedMesh).MeshObject. SubObjects[0].MaterialName = badFaction ? "Robot2" : "Robot"; } else if (Type.Name == "RTSConstructor") { (mapObject.AttachedObjects[0] as MapObjectAttachedMesh).MeshObject. SubObjects[0].MaterialName = badFaction ? "Red" : "Blue"; } } } } } return(result); }
protected override void OnDieObjectCreate(MapObjectCreateObject createObject, object objectCreated) { base.OnDieObjectCreate(createObject, objectCreated); MapObjectCreateMapObject createMapObject = createObject as MapObjectCreateMapObject; if (createMapObject != null) { MapObject mapObject = (MapObject)objectCreated; //Corpse copy forceMaterial to meshes if (mapObject is Corpse && InitialFaction != null) { bool badFaction = InitialFaction.Name == "BadFaction"; if (Type.Name == "RTSRobot") { (mapObject.AttachedObjects[0] as MapObjectAttachedMesh).MeshObject. SubObjects[0].MaterialName = badFaction ? "Robot2" : "Robot"; } else if (Type.Name == "RTSConstructor") { (mapObject.AttachedObjects[0] as MapObjectAttachedMesh).MeshObject. SubObjects[0].MaterialName = badFaction ? "Red" : "Blue"; } } } }
protected override void OnDieObjectCreate(MapObjectCreateObject createObject, object objectCreated) { base.OnDieObjectCreate(createObject, objectCreated); MapObjectCreateMapObject createMapObject = createObject as MapObjectCreateMapObject; if (createMapObject != null) { MapObject mapObject = (MapObject)objectCreated; Explosion explosion = mapObject as Explosion; if (explosion != null) { explosion.DamageCoefficient = DamageCoefficient; explosion.SourceUnit = SourceUnit; } } }
public override MapObjectCreateObjectCollection.CreateObjectsResultItem[] DieObjects_Create() { MapObjectCreateObjectCollection.CreateObjectsResultItem[] result = base.DieObjects_Create(); //populate the inventory foreach (MapObjectCreateObjectCollection.CreateObjectsResultItem item in result) { MapObjectCreateMapObject createMapObject = item.Source as MapObjectCreateMapObject; if (createMapObject != null) { foreach (MapObject mapObject in item.CreatedObjects) { Corpse invObj = mapObject as Corpse; if (invObj != null && InitialFaction != null) { invObj.Inventory = Inventory; } } } } return(result); }
public override MapObjectCreateObjectCollection.CreateObjectsResultItem[] DieObjects_Create() { MapObjectCreateObjectCollection.CreateObjectsResultItem[] result = base.DieObjects_Create(); //copy DamageCoefficient, SourceUnit properties to created Explosions. foreach (MapObjectCreateObjectCollection.CreateObjectsResultItem item in result) { MapObjectCreateMapObject createMapObject = item.Source as MapObjectCreateMapObject; if (createMapObject != null) { foreach (MapObject mapObject in item.CreatedObjects) { Explosion explosion = mapObject as Explosion; if (explosion != null) { explosion.DamageCoefficient = DamageCoefficient; explosion.SourceUnit = SourceUnit; } } } } return(result); }