예제 #1
0
        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);
        }
예제 #2
0
        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";
                    }
                }
            }
        }
예제 #3
0
        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;
                }
            }
        }
예제 #4
0
        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);
        }
예제 #5
0
        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);
        }