You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
105 lines
4.0 KiB
105 lines
4.0 KiB
4 years ago
|
using AX.Network.Protocols;
|
||
|
using AX.Serialization;
|
||
|
using System.Collections;
|
||
|
using System.Collections.Generic;
|
||
|
using UnityEngine;
|
||
|
|
||
|
public class COMMANDCENTER_FIREMANNUM_SYNC : NetworkMessageBehaviour
|
||
|
{
|
||
|
static CommandFiremanNumSyncData thisinfo;
|
||
|
protected override void Execute(BinaryMessage message)
|
||
|
{
|
||
|
if(GameSettings.othersSettings.mode==Mode.manoeuvre)
|
||
|
{
|
||
|
var info = message.Body.Deserialize<CommandFiremanNumSyncData>();
|
||
|
thisinfo = info;
|
||
|
//当前客户端是调派客户端
|
||
|
if (CurrentUserInfo.mySelf.Id==info.selectUserData.UserInfo.Id)
|
||
|
{
|
||
|
GameSettings.othersSettings.nowperson = info.num;
|
||
|
GameSettings.othersSettings.personNum += info.num;
|
||
|
}
|
||
|
if (!GameSettings.othersSettings.DisplayName_Num_Dic.ContainsKey(info.selectUserData.Org.DisplayName))
|
||
|
{
|
||
|
GameSettings.othersSettings.DisplayName_Num_Dic.Add(info.selectUserData.Org.DisplayName, info.num);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
GameSettings.othersSettings.DisplayName_Num_Dic[info.selectUserData.Org.DisplayName] += info.num;
|
||
|
}
|
||
|
if (!GameSettings.othersSettings.FireEngines_Dic.ContainsKey(info.selectUserData.Org.DisplayName))
|
||
|
{
|
||
|
GameSettings.othersSettings.FireEngines_Dic.Add(info.selectUserData.Org.DisplayName, info.num);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
GameSettings.othersSettings.FireEngines_Dic[info.selectUserData.Org.DisplayName] += info.num;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
public static void SetCar()
|
||
|
{
|
||
|
|
||
|
//给新派遣的车辆分配人数
|
||
|
int nowperson = thisinfo.num;
|
||
|
List<KeyValuePair<FireCarEngine, bool>> carlistpire = new List<KeyValuePair<FireCarEngine, bool>>();
|
||
|
//查找该中队还未分配人数的车辆,也就是本次调派的车辆
|
||
|
if (GameSettings.othersSettings.DisCarList_Dic.ContainsKey(thisinfo.selectUserData.Org.DisplayName))
|
||
|
{
|
||
|
carlistpire = GameSettings.othersSettings.DisCarList_Dic[thisinfo.selectUserData.Org.DisplayName];
|
||
|
}
|
||
|
List<FireCarEngine> carlist = new List<FireCarEngine>();
|
||
|
List<FireCarEngine> carlistready = new List<FireCarEngine>();
|
||
|
if (carlistpire.Count > 0)
|
||
|
{
|
||
|
for (int i = 0; i < carlistpire.Count; i++)
|
||
|
{
|
||
|
if (carlistpire[i].Value == false)
|
||
|
{
|
||
|
carlist.Add(carlistpire[i].Key);
|
||
|
// carlistpire.Remove(carlistpire[i]);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
carlistready.Add(carlistpire[i].Key);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (nowperson > 0)
|
||
|
{
|
||
|
int[] PersonNum = new int[carlist.Count];
|
||
|
|
||
|
while (nowperson > 0)
|
||
|
{
|
||
|
for (int i = 0; i < carlist.Count; i++)
|
||
|
{
|
||
|
if (nowperson > 0 && PersonNum[i] < carlist[i].PassengerCapacity)
|
||
|
{
|
||
|
PersonNum[i] += 1;
|
||
|
nowperson--;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
carlistpire.Clear();
|
||
|
for (int i = 0; i < carlistready.Count; i++)
|
||
|
{
|
||
|
KeyValuePair<FireCarEngine, bool> carpire = new KeyValuePair<FireCarEngine, bool>(carlistready[i], true);
|
||
|
carlistpire.Add(carpire);
|
||
|
}
|
||
|
for (int i = 0; i < carlist.Count; i++)
|
||
|
{
|
||
|
carlist[i].PassengerCapacity = PersonNum[i];
|
||
|
KeyValuePair<FireCarEngine, bool> carpire = new KeyValuePair<FireCarEngine, bool>(carlist[i], true);
|
||
|
carlistpire.Add(carpire);
|
||
|
}
|
||
|
GameSettings.othersSettings.DisCarList_Dic[thisinfo.selectUserData.Org.DisplayName] = carlistpire;
|
||
|
}
|
||
|
}
|
||
|
protected override void OnDestroy()
|
||
|
{
|
||
|
base.OnDestroy();
|
||
|
thisinfo = null;
|
||
|
}
|
||
|
}
|