示例#1
0
    //  获取输入
    //	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));
    }
示例#2
0
    //随机分配指令
    // 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);
            }
        }
    }