Exemplo n.º 1
0
        private void CreateUnit(short playerId, short type, Position pos)
        {
            InfoLog.WriteInfo("CreateUnit", EPrefix.Test);
            Player   p  = players[playerId];
            Unit     u  = null;
            ObjectID id = new ObjectID(playerId, p.GenerateObjectID());

            InfoLog.WriteInfo(id.ToString() + " dla jednostki: " + type, EPrefix.Test);
            if (GlobalSettings.Wrapper.harvestersMap.ContainsKey(type))
            {
                u = new UnitHarvester(id, GlobalSettings.Wrapper.harvestersMap[type], pos, this._map, this, GlobalSettings.Wrapper.harvestersMap[type].__Speed);
                ((UnitHarvester)u).SpiceUnload += new SpiceUnloadDelegate(SpiceUnload);
            }
            else if (GlobalSettings.Wrapper.mcvsMap.ContainsKey(type))
            {
                u = new UnitMCV(id, GlobalSettings.Wrapper.mcvsMap[type], pos, this._map, this);
            }
            else if (GlobalSettings.Wrapper.tanksMap.ContainsKey(type))
            {
                u = new UnitTank(id, GlobalSettings.Wrapper.tanksMap[type], pos, this._map, this);
            }
            else if (GlobalSettings.Wrapper.troopersMap.ContainsKey(type))
            {
                u = new UnitTrooper(id, GlobalSettings.Wrapper.troopersMap[type], pos, this._map, this);
            }

            p.AddUnit(u);
            ClearFogOfWar(u);
            OnUnitCompleted(u);
        }
Exemplo n.º 2
0
        void Instance_GameInitialization(object sender, GameInitEventArgs e)
        {
            PlayerInfo pi = ClientPlayerInfo.Player;

            PositionData[] aPd = e.gameInitInfo;

            foreach (PositionData pd in aPd)
            {
                //TODO: get info

                //_currPlayer = _sim.Players[pd.PlayerId];
                Player   p     = _sim.Players[pd.PlayerId];
                ObjectID mcvID = new ObjectID(p.Id, p.GenerateObjectID());
                InfoLog.WriteInfo(mcvID.ToString() + " for MVC", EPrefix.GObj);
                UnitMCV mcv = new UnitMCV(mcvID, GlobalSettings.Wrapper.MCVs[0], new Position(pd.X, _sim.Map.Height - pd.Y - 1), _sim.Map, this._sim);
                p.AddUnit(mcv);
                _sim.ClearFogOfWar(mcv);

                // vjust for fun ;p
                ObjectID tankID = new ObjectID(p.Id, p.GenerateObjectID());

                UnitTank u = new UnitTank(tankID, GlobalSettings.Wrapper.Tanks[0], new Position((short)((pd.X + 1) % _sim.Map.Width), _sim.Map.Height - pd.Y - 1), this._sim.Map, this._sim);
                InfoLog.WriteInfo(tankID.ToString() + " for tank: " + u.TypeID, EPrefix.GObj);
                p.AddUnit(u);
                _sim.ClearFogOfWar(u);
                // ^

                //this.sim.Map.Units[u.Position.X, u.Position.Y].AddLast(u);
            }

            this._sim.StartSimulation();

            this._sim.DoTurn(1);
        }
Exemplo n.º 3
0
        protected override void onMessageDeployMCV(Yad.Net.Messaging.GMDeployMCV dmcv)
        {
            Player  p   = players[dmcv.IdPlayer];
            UnitMCV mcv = (UnitMCV)p.GetUnit(ObjectID.From(dmcv.McvID.ObjectId, dmcv.McvID.PlayerID));

            if (mcv == null)
            {
                InfoLog.WriteInfo("No mcv to deploy found.", EPrefix.SimulationInfo);
                return;
            }
            string bName = mcv.MCVData.BuildingCanProduce;
            short  btype = GlobalSettings.Wrapper.namesToIds[bName];

            this._map.Units[mcv.Position.X, mcv.Position.Y].Remove(mcv);
            BuildingData bd = GlobalSettings.Wrapper.buildingsMap[btype];

            if (!Building.CheckBuildPosition(bd, mcv.Position, _map, dmcv.McvID.PlayerID))
            {
                this._map.Units[mcv.Position.X, mcv.Position.Y].AddLast(mcv);
                if (InvalidBuild != null)
                {
                    InvalidBuild(-1);
                }
                return;
            }
            this._map.Units[mcv.Position.X, mcv.Position.Y].AddLast(mcv);
            Building b = AddBuilding(dmcv.McvID.PlayerID, -1, btype, mcv.Position);

            b.State = Building.BuildingState.normal;
            UpdatePowerManagement(b);
            OnBuildingCompleted(b, -1);
            destroyUnit(mcv);
            //OnUnitDestroyed(mcv);
            if (MCVDeployed != null)
            {
                MCVDeployed(mcv);
            }
        }
Exemplo n.º 4
0
        protected override void onMessageCreate(CreateUnitMessage cum)
        {
            InfoLog.WriteInfo("MessageCreate", EPrefix.Test);
            int              cost = 0;
            Player           p    = players[cum.IdPlayer];
            BoardObjectClass boc  = cum.UnitKind;
            Unit             u    = null;
            ObjectID         id   = new ObjectID(cum.IdPlayer, p.GenerateObjectID());

            InfoLog.WriteInfo(id.ToString() + " unit created: " + cum.Type, EPrefix.GObj);
            if (boc == BoardObjectClass.UnitTank)
            {
                if (players[cum.IdPlayer].Credits < (cost = GlobalSettings.Wrapper.tanksMap[cum.UnitType].Cost))
                {
                    return;
                }
                u = new UnitTank(id, GlobalSettings.Wrapper.tanksMap[cum.UnitType], cum.Position, this._map, this);
                players[cum.IdPlayer].Credits -= GlobalSettings.Wrapper.tanksMap[cum.UnitType].Cost;
            }
            else if (boc == BoardObjectClass.UnitTrooper)
            {
                if (players[cum.IdPlayer].Credits < (cost = GlobalSettings.Wrapper.troopersMap[cum.UnitType].Cost))
                {
                    return;
                }
                u = new UnitTrooper(id, GlobalSettings.Wrapper.troopersMap[cum.UnitType], cum.Position, this._map, this);
                players[cum.IdPlayer].Credits -= GlobalSettings.Wrapper.troopersMap[cum.UnitType].Cost;
            }
            else if (boc == BoardObjectClass.UnitHarvester)
            {
                if (players[cum.IdPlayer].Credits < (cost = GlobalSettings.Wrapper.harvestersMap[cum.UnitType].Cost))
                {
                    return;
                }
                u = new UnitHarvester(id, GlobalSettings.Wrapper.harvestersMap[cum.UnitType], cum.Position, this._map, this, GlobalSettings.Wrapper.harvestersMap[cum.UnitType].__Speed);
                ((UnitHarvester)u).SpiceUnload += new SpiceUnloadDelegate(SpiceUnload);
                players[cum.IdPlayer].Credits  -= GlobalSettings.Wrapper.harvestersMap[cum.UnitType].Cost;
            }
            else if (boc == BoardObjectClass.UnitMCV)
            {
                if (players[cum.IdPlayer].Credits < (cost = GlobalSettings.Wrapper.mcvsMap[cum.UnitType].Cost))
                {
                    return;
                }
                u = new UnitMCV(id, GlobalSettings.Wrapper.mcvsMap[cum.UnitType], cum.Position, this._map, this);
                players[cum.IdPlayer].Credits -= GlobalSettings.Wrapper.mcvsMap[cum.UnitType].Cost;
            }
            else if (boc == BoardObjectClass.UnitSandworm)
            {
                u = new UnitSandworm(id, GlobalSettings.Wrapper.sandwormsMap[cum.UnitType], cum.Position, this._map, this, GlobalSettings.Wrapper.sandwormsMap[cum.UnitType].__Speed);
                Sandworms[id.ObjectId] = (UnitSandworm)u;
                return;
                //} else if (boc == BoardObjectClass.UnitTank) {
                //    u = new UnitTank(id, GlobalSettings.Wrapper.tanksMap[cum.UnitType], cum.Position, this._map, this);
                //} else if (boc == BoardObjectClass.UnitTrooper) {
                //    u = new UnitTrooper(id, GlobalSettings.Wrapper.troopersMap[cum.UnitType], cum.Position, this._map, this);
            }
            OnCreditsUpdate(cum.IdPlayer, cost);
            p.AddUnit(u);
            ClearFogOfWar(u);

            OnUnitCompleted(u);
        }