using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public enum RunState
{
///
/// 教员端
///
teacher,
///
/// 客户端
///
student,
}
///
/// 用户数据类
///
[Serializable]
public class User
{
public UserType userType;
public string user;
public string password;
}
//学员记录
public class RecordClassDemo
{
public string user;
public string msg;
}
//记录学员的操作和教员的评价信息 user+time可组成唯一标识
public class OperaterRecording
{
//学员信息
public string user;
//学员训练的开始日期和时间
public string date;
//训练的科目
public string subName;
//训练的模式 训练/考核
public string learnType;
//训练耗时
public string useTime;
//教师评价等级
public string appraiseLevel;
//指定的录屏视频路径
public string videoPath;
//操作记录 用于查看详情时使用
public List operaterMsg;
}
public enum TurnPageType
{
Up,
Down,
}
public enum MessType
{
result,
user,
}
//用户类型
public enum UserType
{
student,
Teacher,
manager,
}
//用户类型
public enum OperateType
{
revise,//修改
add,//新增
}
//学员学习状态
public enum LearnState
{
//等待状态
waiting=0,
//学习状态
learning=1,
//考核状态
examing=2,
}
//学员学习状态显示文本
public enum LearnStateText
{
//等待状态
未下发科目 = 0,
//学习状态
训练中 = 1,
//考核状态
考核中 = 2,
}
//在线学员
public class OnlineStudent
{
public string ip;
public string user;
public LearnState state;
public string subName;//当前科目
public NetSubStage subStage;
public int groupNumber=-1;
public bool isMaster=false;
}
//图标类型
public enum IconType
{
//装备编辑图标
equipEditor,
//人员编辑图标
personnelEditor,
//突发事件编辑图标
accidentEditor,
//突发事件地图实例图标
accidentInstance,
//厂区标记图标
areaFlage,
}
//教员端选择装备库图标数据
[Serializable]
public class EquipIconData
{
public string name;
public float speed;
public int count;
public bool isOn;
public EquipIconData()
{
}
public EquipIconData(string Name,float Speed,int Count, bool IsOn)
{
name = Name;
speed = Speed;
count = Count;
isOn = IsOn;
}
}
//放置在地图上的行军车辆数据 显示车载物体时使用
[Serializable]
public class OnMapCarData
{
public string name;
//public Vector2 anchorPos;
public float aPX;
public float aPY;
public float angleZ;
public XDictionary onboardPersonDic = new XDictionary();//车载人员和对应数量
public XDictionary onboardEquipDic = new XDictionary();//车载装备和对应数量
public OnMapCarData()
{
}
public OnMapCarData(string nameStr, Vector2 anchor, float angle, XDictionary personDic, XDictionary equipDic)
{
name = nameStr;
aPX = anchor.x;
aPY = anchor.y;
angleZ = angle;
onboardPersonDic = personDic ;
onboardEquipDic = equipDic;
}
}
//设置的突发事件数据
[Serializable]
public class TuFaData
{
public TuFaEnum name;
public float posX;//
public float posY;//anchoredPos
public int ID;//突发事件ID 用于区分突发事件
public TuFaData()
{
}
public TuFaData(TuFaEnum nameStr, Vector2 anchorPos)
{
name = nameStr;
posX = anchorPos.x;
posY = anchorPos.y;
}
}
[Serializable]
public enum TuFaEnum
{
敌机侦察,
敌机打击,
化学沾染地带,
越过染毒地带,
小股敌人袭扰,
道路阻断,
友邻装备轻度损伤,
友邻装备重度损伤,
}
///
/// 编队分组
///
public enum FormationGroupingEnum
{
//不连贯训练时默认为该分组
前进保障队,
指挥组,
前出保障组,
抢救抢修队,
主体编队,
殿后保障组,
}
//科目想定基类
[Serializable]
public class RecordBase
{
public NetSubNameEnum subName;
public RecordBase()
{
}
//选用地形
public string TerrainName;
//想定介绍
public string fileIntr;
//任务介绍
public string taskIntr;
}
//科目1想定记录数据类
[Serializable]
public class SubRecordClass:RecordBase
{
public SubRecordClass()
{
subName = NetSubNameEnum.编队行军;
}
//可选用设备
public List usedEquips = new List();
//可选用人员
public List usedPersons=new List();
//设置的突发事件
public List tuFaDatas= new List();
}
[Serializable]
public class Sub2RecordClass : RecordBase
{
public Sub2RecordClass()
{
subName = NetSubNameEnum.修理所展开;
}
[System.Xml.Serialization.XmlElementAttribute("OnMapCarData")]
public List onMapCars = new List();
}
//教员编辑界面初始化数据
public class EditorPanelInitData
{
public string filePath;//文件路径 用于存储时覆盖原有文件
public RecordBase recordBase; //
}
//创建的类型
public enum CreaterType
{
car,
childEquip,
person,
}
public enum ABType
{
装备=1,
工具=2,
地形=3,
天候=4,
}
public class AssetBundleMsg
{
public string assetsName;
public ABType type;
public string filePath;
//搭载装备
public string parentName;
}
///
/// 允许摆放区域的相关参数
///
[Serializable]
public struct PermissibleArea
{
public Vector3 areaWorldPostion;
public Vector2 areaSize;
public float angle;
}
//想定文件存储和再次加载初始化车辆图标信息
public class CarIconIntacneInitData
{
public string setInTargetImage;//应当放置在其他物体名称
public int angle;
public XDictionary onboardPersonDic = new XDictionary();//车载人员和对应数量
public XDictionary onboardEquipDic = new XDictionary();//车载装备和对应数量
}
//待创建的车辆信息
public class CarData
{
public IconBase icon;// 对应的UI图标 可用于更新图标
public CarPosType carType;
public string carName;
public Vector3 postion;
public Vector3 rotation;
public float Speed;
public float stopDistance = 100f;//行军时与前车默认间距
public string onboardEquip;//车载装备名称
}
//突发问题相关
public static class TuFaAnswers
{
public static Dictionary tufaEvents = new Dictionary() {
{TuFaEnum.敌机侦察, new TuFaAnswerClass( new Dictionary(){ { "继续行军", -15 },{ "直接停车", -10},{ "利用地物隐蔽",-1 },{ "下车攻击", -20 }},"利用地物隐蔽") } ,
{TuFaEnum.友邻装备轻度损伤, new TuFaAnswerClass(new Dictionary(){ { "继续行军", -10 },{ "排除应急抢修组支援修理", 0} ,{ "组织后送", -15} },"排除应急抢修组支援修理") } ,
{TuFaEnum.友邻装备重度损伤, new TuFaAnswerClass(new Dictionary(){{ "继续行军", -10 },{ "排除应急抢修组支援修理", -15} ,{ "组织后送", 0} },"组织后送") } ,
{TuFaEnum.小股敌人袭扰, new TuFaAnswerClass(new Dictionary(){ { "直接后下车隐蔽",-10 },{ "加速通过,报告上级", -15} ,{ "停车侦察后追击歼灭", 0} },"停车侦察后追击歼灭") } ,
{TuFaEnum.化学沾染地带, new TuFaAnswerClass(new Dictionary(){ { "提高车速通过", -10 },{ "匀速通过,收三口", 5} ,{ "提高车速同时收三口(袖口 领口 裤口)", 0} ,{ "匀速通过", -20} },"提高车速同时收三口(袖口 领口 裤口)") } ,
{TuFaEnum.敌机打击, new TuFaAnswerClass( new Dictionary(){ { "继续行军", -10 },{ "停车后集中还击", -20} ,{ "停车后分散还击", -5},{ "拉大车距行军", -4}},"拉大车距行军") } ,
{TuFaEnum.越过染毒地带, new TuFaAnswerClass( new Dictionary(){ { "匀速行军", -10 },{ "停车进行人员洗消", -5},{ "停车进行人装洗消", 12} },"停车进行人装洗消") } ,
{TuFaEnum.道路阻断, new TuFaAnswerClass(new Dictionary(){ { "报告后停车待命", -10 },{ "冒险前进", -15},{ "组织抢救车土工作业后继续前进", 0} },"组织抢救车土工作业后继续前进") } ,
};
}
public class TuFaAnswerClass
{
public Dictionary options = new Dictionary(); //选项即选项对应的耗时
public string rightOption;//最佳选项
public TuFaAnswerClass(Dictionary options,string rightOption)
{
this.options = options;
this.rightOption = rightOption;
}
}
////记录所有的厂区名称 用于UI初始化
//public static class AreaName
//{
// public static List areaNames = new List() { "指控区","油料场", "器材存放场", "弹药场", "修竣装备停放场", "修理场", "待修装备停放场", "洗消场", "待后送装备停放场", "接收场" };
//}
//确定厂区唯一名称
public enum AreaNameEnum
{
指控区,
油料场,
器材存放场,
弹药场,
修竣装备停放场,
修理场,
待修装备停放场,
洗消场,
待后送装备停放场,
接收场,
}
//成绩更新面板数据类
public class ResultMsgToUI
{
public string ip;
public NetAnswerSheet resultMsg;
public ResultMsgToUI()
{
}
public ResultMsgToUI(string ip, NetAnswerSheet netResult)
{
this.ip = ip;
this.resultMsg = netResult;
}
}
public static class OnboardPerson
{
public static Dictionary> personDic = new Dictionary>()
{
{ "NY033H型轮式轻型防化分队指挥车",new XDictionary(){ { "连长",1},{ "指导员",1},{ "副连长",1 }, { "装甲技师", 1 } } },
{ "ZJQ84Q式中型坦克抢救车",new XDictionary(){ { "抢救工", 2},{ "起重工", 1},{ "装甲底盘修理工", 1 }, { "电气修理工", 1 } } },
{ "96A坦克抢救车",new XDictionary(){ { "抢救工", 2},{ "装甲底盘修理工", 1},{ "电气修理工", 1 } } },
{ "VME104履带装甲抢修车",new XDictionary(){ { "抢救工", 2},{ "火炮修理工", 1},{ "装甲底盘修理工", 1 }, { "火控修理工", 1 }, { "通信修理工", 1 } } },
{ "VMG101履带装甲补给车",new XDictionary(){ { "抢救工", 2},{ "装甲底盘修理工", 1 } } },
{ "CXZ411型装甲能源工程车",new XDictionary(){ { "电气修理工", 2},{ "车辆综合电子系统修理工", 3} } },
{ "CXZ511型装甲保养工程车",new XDictionary(){ { "液压修理工", 1},{ "装甲底盘修理工", 3} } },
{ "徐工QY25K型汽车起重机",new XDictionary(){ { "起重工", 1} } },
{ "VME301-5型轮式装备抢救车",new XDictionary(){ { "抢救工", 1},{ "汽车修理工", 2} } },
{ "CXC022汽车保养车",new XDictionary(){ { "汽车修理工", 3} } },
{ "VME105履带装甲抢修车",new XDictionary(){ { "抢救工", 2} } },
{ "徐工QY16K型汽车起重机",new XDictionary(){ { "起重工", 2} } },
{ "CXZ311型装甲拆装工程车",new XDictionary(){ { "液压修理工", 1},{ "装甲底盘修理工", 3} } },
{ "CXZ511型装甲保养工程车",new XDictionary(){ { "液压修理工", 1},{ "装甲底盘修理工", 3 } } },
{ "CXC012汽车修理工程车",new XDictionary(){ { "汽车修理工", 3},{ "电气修理工", 1} } },
};//车辆应该具备的标注车载人员
}
///
/// 导调界面初始化类
///
public class AdjustingPanelInitData
{
public string user;
public string ip;
public NetAdjustingInitData initData;
}
///
/// 分组协同训练 全局数据记录类
///
public static class GroupLearnHelper
{
public static int groupNumber;
///
/// 是否分组训练
///
public static bool isGroup;
///
/// 是否组长
///
public static bool isMaster;
///
/// 其他组员
///
public static List otherUser;
static NetLearnGroup netLearn;
///
/// 接到科目信息时 注入并分析分组状态
///
public static NetLearnGroup GroupLearn
{
set
{
netLearn = value;
if (netLearn != null && netLearn.allStudents.Count > 1)
{
isGroup = true;
isMaster = ThisIP == netLearn.masterIP;
groupNumber = netLearn.groupNumber;
netLearn.allStudents.Remove(ArrayHelper.Find(netLearn.allStudents.ToArray(), (p) => p.ip == thisIP));//移除代表自己的user
otherUser = netLearn.allStudents;
}
else
{
isGroup = false;
isMaster = false;
}
}
}
static string thisIP;
///
/// 获取本机IP
///
public static string ThisIP {
get
{
if (string.IsNullOrEmpty(thisIP))
thisIP = ETModel.NetHelper.GetAddressIPV4();
return thisIP;
}
}
}
public static class StepName
{
public static Dictionary StepNameDic = new Dictionary() {
{"V型卡箍","排气系统车内排烟管和车外消音器连接的V型卡箍螺栓" },
{"车轮","" },
{"燃油回油管快接","发动机燃油回油管快速接头" },
{"拆卸开始节点","" },
{"椅底盖板","驾驶椅底部盖板" },
{"软轴卡板螺栓组","" },
{"吊装盖板锁扣组","" },
{"舱后隔板B锁扣组","" },
{"动力装置螺栓6","一体化动力装置右侧后方与车体连接的1个螺栓" },
{"动力装置螺栓5","右前轮处一体化动力装置与车体连接的1个螺栓" },
{"右前轮窗口盖","车体右前轮舱上窗口盖" },
{"右前轮窗口盖螺栓组","" },
{"发电机电控执行器插头","发动机电控装置电控执行器电缆插头" },
{"采集控制信号插头","动力舱采集控制信号电缆插头" },
{"档控螺栓组A","变速操纵装置控制盒上侧的3个螺栓" },
{"软轴卡板","钢丝绳软轴固定卡板" },
{"加温器回水管","冷却系统加温器回水管快速接头" },
{"加温器进水管快接","冷却系统加温器进水管快速机头" },
{"变速和离合操纵气管接头","附属用气系统变速器高低档气管和离合器气缸操纵气管接头" },
{"附属用气压机出气套","附属用气系统空气压缩机出气管卡套" },
{"排气制动缸螺套","制动系统排气制动缸气管固定螺套" },
{"转助泵回油快接","转向系统转向助力泵回油管快速接头" },
{"转助泵进油快接","转向系统转向助力泵进油管快速接头" },
{"传动轴螺栓组","变速器输出轴与分动器连接的四颗螺栓" },
{"动力装置螺栓1","一体化动力装置左侧后方与车体连接的1个螺栓" },
{"分动器回油管快接","分动器回油管快速接头" },
{"分动器进油快接","分动器进油管快速接头" },
{"变量泵控制油管快接","水上液压传动系统变量泵控制油管快速接头" },
{"变量泵泄油管快接","水上液压传动系统变量泵泄油管快速接头" },
{"变量泵回油管快接","水上液压传动系统变量泵回油管快速接头" },
{"变量泵吸油管螺栓组","水上液压传动系统变量泵吸油管4颗固定螺栓" },
{"舱后隔板B","动力舱后部隔板B" },
{"风定马达回油滤螺套","风扇液压传动系统定量马达与回油滤连接管的连接螺套" },
{"燃油供油管快接","发动机燃油供油管快速接头" },
{"驾舱隔板B锁扣组","" },
{"驾舱隔板A","驾驶舱隔板A" },
{"驾舱隔板B","驾驶舱隔板B" },
{"驾舱隔板A锁扣组","" },
{"横梁螺栓组","" },
{"变泵吸油快接","风扇液压传动系统变量泵吸油管快速接头" },
{"驾驶椅螺栓组","" },
{"档位控制器","变速操纵装置控制盒" },
{"离工与主快接","离合器工作缸与离合器主缸连接油管快速接头" },
{"百叶窗","百叶窗" },
{"散热器","散热器" },
{"动力装置","一体化动力装置吊装" },
{"舱后隔板处电缆组","动力舱后隔板下部电气装置5个电缆插头和中央充放气总线螺纹接头" },
{"三角木","" },
{"动力装置螺栓234组","一体化动力装置左侧前方与车体连接的3个螺栓" },
{"变泵泄油螺套","风扇液压传动系统温控阀回油管和变量泵泄油管的连接螺套" },
{"吊装盖板","吊装动力舱车体后部盖板" },
{"驾驶椅","驾驶椅" },
{"变泵高压快接","风扇液压传动系统变量泵吸高压油管快速接头" },
{"百叶窗锁扣组","" },
{"制动螺栓","驻车制动缸中心螺栓" },
{"舱后隔板A锁扣组","" },
{"档控螺栓组B","变速操纵装置控制盒左侧中部、下部4个螺栓" },
{"液传回油快接","风扇液压传动系统回油管快速接头" },
{"横梁","横梁" },
{"舱后隔板A","动力舱后部隔板A" },
{"千斤顶","" },
};
}