public void CheckCollisions(float elapsedSeconds, SendParameters sp, MmoPeer serverPeer) { if (mobItem.Disposed) { return; } float radius = GlobalVars.swarmShipRadius; if ((type == BotType.Swarm) || type == BotType.FastSwarm) { radius = GlobalVars.swarmShipRadius; } else if (type == BotType.Mother) { radius = GlobalVars.motherShipRadius; } float radiusSq = radius * radius; foreach (Item regionItem in mobItem.CurrentWorldRegion.myitems) { // if (regionItem.Type == (byte)ItemType.Bullet) // GlobalVars.log.InfoFormat("mob col check w " + regionItem.Id.ToString()); if (CollisionHelper.CheckItemCollisionAgainstProjectile(mobItem, regionItem, ref this.hp, sp, (MmoActorOperationHandler)BotManager.serverPeer.CurrentOperationHandler, radiusSq, radius)) { // check if mob is dead if (this.hp <= 0) { GlobalVars.log.InfoFormat("mob killed " + mobItem.Id); DestroyMob(); } else { if ((byte)regionItem.Type == (byte)ItemType.Bullet) { if (!regionItem.Owner.isBotMan) { ChangeToChaseState((MmoActor)regionItem.Owner); } } } } } }
public static void InitializeManager(World world, SendParameters sp) { Sp = sp; IsInitialized = true; BotManager.world = world; DummyPeer dp = new DummyPeer(SocketServer.Protocol.GpBinaryV162, "botmn"); var initRequest = new InitRequest(SocketServer.Protocol.GpBinaryV162, dp); serverPeer = new MmoPeer(initRequest); serverPeer.Initialize(initRequest); GlobalVars.log.InfoFormat("initializing bot man"); timeTillMotherSpawn = 0; // enter world with delay, just seems safer timer = new System.Timers.Timer(); timer.Elapsed += new System.Timers.ElapsedEventHandler(EnterWorld); timer.Interval = 500; // 500ms timer.Enabled = true; }