Esempio n. 1
0
        protected override void onMessageMove(MoveMessage gm)
        {
            InfoLog.WriteInfo("MessageMove: PlayerID:" + gm.IdPlayer + " UnitID:" + gm.IdUnit, EPrefix.Move);

            Player p = this.players[gm.IdPlayer];
            Unit   u = p.GetUnit(ObjectID.From(gm.IdUnit, gm.IdPlayer));

            if (u == null)
            {
                InfoLog.WriteInfo("MessageMove: PlayerID:" + gm.IdPlayer + " unit has been already destroyed", EPrefix.Move);
                return;
            }
            u.OrderedAttack = false;
            u.MoveTo(gm.Destination);
        }
Esempio n. 2
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);
            }
        }