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.
104 lines
4.0 KiB
104 lines
4.0 KiB
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; |
|
} |
|
}
|
|
|