// 获取输入 // return // 1: 胜利 // 0:继续 // -1:失败 // -2:继续输入指令 public int GetInput(int objID, int casterID, int targetID, ref float startTime) { List <int> enemyIDList = gameSence.PersonAlivePersonIDList(-1); List <int> playerIDAliveList = gameSence.PersonAlivePersonIDList(1); List <int> targetIDList = null; Order order = null; //大于等于1000的就是技能 if (objID >= 1000) { //Debug.Log("______________" + casterID.ToString() + " " + objID.ToString() + " " + targetID.ToString()); //Debug.Log(gameSence.allDict[casterID]); //是防御 if (objID == 1011) { order = new SkillUseStruct(casterID, objID, null); } else { Skill skill = gameSence.allDict[casterID].GetSkill(objID); enemyIDList.Remove(targetID); targetIDList = gameSence.GetRandomList(enemyIDList, skill.TargetNumber - 1); targetIDList.Insert(0, targetID); order = new SkillUseStruct(casterID, skill.SkillID, targetIDList); } } else { //是道具 targetIDList = new List <int> { }; targetIDList.Add(targetID); order = new ProductUseStruct(casterID, objID, targetIDList); } this.orderList.Add(order); for (int j = 0; j < playerIDAliveList.Count; j++) { int flag = 0; for (int i = 0; i < this.orderList.Count; i++) { if (playerIDAliveList[j] == orderList[i].CasterID) { flag = 1; break; } } if (flag == 0) //还有指令没输入完成 { return(-2); } } return(this.GameStart(ref startTime)); }
//随机分配指令 // return List<SkillUseStruct> : {{释放者ID , 技能ID , 攻击目标ID集合},{释放者ID , 技能ID , 攻击目标ID集合},....} public void RandomOrder() { List <int> enemyIDAliveList = gameSence.PersonAlivePersonIDList(-1); //存活敌人ID集合 List <int> playerIDAliveList = gameSence.PersonAlivePersonIDList(1); //存活玩家ID集合 List <int> targetIDList = new List <int> { }; //攻击目标ID集合 //为所有角色分配指令 foreach (var person in gameSence.allList) { //如果还没有指令 if (IsNotOrder(person.PersonID)) { List <Skill> skillList = person.GetSkillList(); int skillID = Random.Range(0, skillList.Count); Skill skill = skillList [skillID]; int targetNumber = skill.TargetNumber; int skillType = skill.SkillType; // 随机指定数个目标 //施法者是敌人 if (gameSence.IsEnemy(person)) { //技能类型为 对敌 if (skillType == 1) { targetIDList = playerIDAliveList; } else if (skillType == 0) { targetIDList = enemyIDAliveList; } else if (skillType == -1) //对己 { targetIDList = new List <int> { person.PersonID }; } } else //施法者是玩家 { if (skillType == 1) //技能类型为 对敌 { targetIDList = enemyIDAliveList; } else if (skillType == 0) { targetIDList = playerIDAliveList; } else if (skillType == -1) { targetIDList = new List <int> { person.PersonID }; } } targetIDList = gameSence.GetRandomList(targetIDList, targetNumber); SkillUseStruct order = new SkillUseStruct(person.PersonID, skill.SkillID, targetIDList); this.orderList.Add(order); } } }