void Start() { bs = cam.AddComponent <BattleStart>(); bq = cam.AddComponent <BattleQueue>(); battle = cam.AddComponent <Battle>(); allyArmy = bs.CreateArmy("Ally"); enemyArmy = bs.CreateArmy("Enemy"); battleQueue = bq.CreateQueue(allyArmy, enemyArmy); }
public ActionResult PreBattle() { if (Session["gladiator"] == null) // If the gladiator session expired or for some reason null it send player back to index. { return(RedirectToAction("Index")); } else { int gId = (Session["gladiator"] as Gladiator).Id; // taking out the gladiator id from the session. Gladiator gladiator = db.Gladiators.SingleOrDefault(i => i.Id == gId); // picking up the gladiator based on the Id. if (Session["enemy"] == null) // If the session for opponent expired or for some reason null send player to gladiator menu. { return(View("GladiatorMenu", gladiator)); } else { int oId = (Session["enemy"] as Opponent).Id; Opponent opponent = db.Opponents.SingleOrDefault(i => i.Id == oId); if (gladiator == null || opponent == null) { return(new HttpStatusCodeResult(400)); } else { BattleStart battleStart = new BattleStart(); // Setting up a new battle battleStart.Gladiator = gladiator; // Saving the gladiator into the BattleStart class. battleStart.Opponent = opponent; battleStart.BattleDate = DateTime.Today; battleStart.Finished = "No"; db.Battles.Add(battleStart); db.SaveChanges(); return(View("BattleView", battleStart)); } } } }
/*public static void InitializePlayersTeam() * { * foreach (var i in playersTeam) * managers.Add(i); * } * * public static void InitializeEnemyTeam() * { * foreach (var i in enemyTeam) * managers.Add(i); * }*/ public static void InitializeBattleManager() { BattleStart.Initialize(); battleManager.Initialize(); ui.Initialize(); }
public void HandleReceive() { lock (mutex) { do { if (offset < DataSizeOffset + DataSize) { break; } // 先读取包的size int packet_size = ByteOrderConverter.NetworkToHostOrder(BitConverter.ToInt32(buffer, DataSizeOffset)); int proto_total_len = packet_size + WrapperLen; if (offset < proto_total_len) { break; } // 读取包id int id = ByteOrderConverter.NetworkToHostOrder(BitConverter.ToInt16(buffer, HandlerIdOfffset)); // 处理具体的包协议 object proto_data = null; int proto_data_deserialize_offset = DataOffset; switch (id) { case ResponseId.JoinRoomResult: { proto_data = JoinRoomResult.Deserialize(buffer, ref proto_data_deserialize_offset); } break; case ResponseId.BattleStart: { proto_data = BattleStart.Deserialize(buffer, ref proto_data_deserialize_offset); } break; case ResponseId.Tick: { proto_data = TickList.Deserialize(buffer, ref proto_data_deserialize_offset); } break; default: break; } ; if (proto_data != null) { ProtoData data = new ProtoData(); data.id = id; data.proto = proto_data; proto_data_queue.Enqueue(data); } // 包体读取完毕 Array.Copy(buffer, proto_total_len, buffer, 0, offset - proto_total_len); offset = offset - proto_total_len; }while(true); } }
public void InitiateBattle() { BattleStart?.Invoke(); }
public void MainThreadFunc(float delta_time) { // called every frame ProtoData proto_data = receiveBuffer.DequeueProtoData(); while (proto_data != null) { //Debug.Log("收到消息包 id : " + proto_data.id); switch (proto_data.id) { case ResponseId.JoinRoomResult: { JoinRoomResult result = proto_data.proto as JoinRoomResult; // 逻辑层更新 BL.BLTimelineController.Instance().OnJoinRoom(result.team_id); // 表现层更新 BattleField.battle_field.OnJoinRoom(result.team_id, result.team_id); } break; case ResponseId.BattleStart: { BattleStart result = proto_data.proto as BattleStart; BL.BLTimelineController.Instance().Start(); BattleFieldInputHandle.Instance().enabled = true; } break; case ResponseId.Tick: { TickList tick_list = proto_data.proto as TickList; //Debug.Log("收到同步帧 " + tick_list.frame); // 先把指令放入队列 for (int i = 0; i < tick_list.list.Count; ++i) { Tick tick = tick_list.list[i]; switch (tick.command_type) { case BL.TickCommandType.Move: { BL.BLIntVector3 dest_position; dest_position.x = tick.x; dest_position.y = 0; dest_position.z = tick.y; BL.BLCommandBase command = BL.BLCommandManager.Instance().CreateMove2PositionCommand(tick.cast_id, tick_list.frame, dest_position); BL.BLCommandManager.Instance().AddCommand(command.cast_frame, command); } break; case BL.TickCommandType.PUT_HERO: { BL.BLCommandBase command = BL.BLCommandManager.Instance().CreatePutHeroCommand(tick.team_id, tick_list.frame, tick.hero_index); BL.BLCommandManager.Instance().AddCommand(command.cast_frame, command); } break; case BL.TickCommandType.PURSUE_TARGET: { } break; } ; } // 时间轴控制进行一帧, 分发指令 BL.BLTimelineController.Instance().frame_received++; } break; default: break; } ; proto_data = receiveBuffer.DequeueProtoData(); } }