コード例 #1
0
ファイル: ObjAtkManager.cs プロジェクト: LiuFeng1011/Diablo
 void Atk()
 {
     state = AtkState.atkend;
     parent.SetAnimatorState(InGameBaseCharacter.AnimatorState.Idle, 1);
     BaseSkill.CreateSkill(parent.GetBaseSkillID(), parent, (InGameBaseCharacter)target);
     //((InGameBaseCharacter)target).ChangeLife(-parent.GetAtkForce());
 }
コード例 #2
0
ファイル: ObjAtkManager.cs プロジェクト: LiuFeng1011/Diablo
 public override void StopAction()
 {
     parent.SetAnimatorState(InGameBaseCharacter.AnimatorState.Idle, 1);
     isaction = false;
     atkTime  = 0;
     state    = AtkState.move;
 }
コード例 #3
0
ファイル: ObjAtkManager.cs プロジェクト: LiuFeng1011/Diablo
    void StartAtk()
    {
        state = AtkState.atkbegin;


        if (Vector3.Distance(parent.transform.position, target.transform.position) > parent.GetAtkDis(target))
        {
            state = AtkState.non;
            return;
        }

        if (GameConst.CAMP_ATK[(int)target.camp, (int)parent.camp] == 0)
        {
            if (target.GetObjType() == InGameBaseObj.enObjType.equip)
            {
                InGameBaseEquip equip = (InGameBaseEquip)target;

                parent.StopAction();

                EquipData e = EquipSystem.GetInstance().RandEquipProperty(equip);
                InGameManager.GetInstance().inGamePlayerManager.AddEquip(e);

                MonoBehaviour.Destroy(equip.gameObject);
            }
            return;
        }

        parent.SetAnimatorState(parent.GetAtkAnimator(), parent.GetAtkSpeed());
        atkTime = 0;

        Vector3 v = (target.transform.position - parent.transform.position).normalized;

        parent.transform.forward = v;
    }
コード例 #4
0
    /// <summary>
    /// 切换攻击状态
    /// </summary>
    protected override void SwitchAtkState(AtkState state)
    {
        if (playerState == PlayerState.Death)
        {
            return;
        }
        if (atkState == state)
        {
            return;
        }
        switch (state)
        {
        case AtkState.None:
            atkState = state;
            break;

        case AtkState.Shoot:
            if (currentGun.GetIsShoot())
            {
                //判断武器是否自动
                if (currentGun.data.IsAuto)
                {
                    selfAnim.SetTrigger("MultiShoot");
                }
                else
                {
                    selfAnim.SetTrigger("SingleShoot");
                }
                atkState = state;
            }
            break;

        case AtkState.BulletUp:
            currentGun.InitSight();
            currentGun.isOpenMicro = false;
            selfAnim.SetTrigger("BulletUp");
            atkState = state;
            break;

        case AtkState.SwitchGun:
            int index = currentIndex == 0 ? 1 : 0;    //只有两把枪
            SwitchGun(index);
            selfAnim.SetTrigger("SwitchGun");
            EventCenterManager._Instance.SendMessage(EventType.SwitchGun, currentGun.data.ID);
            atkState = state;
            break;
        }

        //网络同步状态
        client.SendPlayerStateToServer(playerState, atkState);
    }
コード例 #5
0
ファイル: Player_2.cs プロジェクト: zhzhzx123/LMZLight
    /// <summary>
    /// 切换攻击状态
    /// </summary>
    protected override void SwitchAtkState(AtkState state)
    {
        if (playerState == PlayerState.Death)
        {
            return;
        }
        if (atkState == state)
        {
            return;
        }
        switch (state)
        {
        case AtkState.None:
            atkState = state;
            break;

        case AtkState.Shoot:
            if (currentGun.GetIsShoot())
            {
                //判断武器是否自动
                if (currentGun.data.IsAuto)
                {
                    selfAnim.SetTrigger("MultiShoot");
                }
                else
                {
                    selfAnim.SetTrigger("SingleShoot");
                }
                atkState = state;
            }
            break;

        case AtkState.BulletUp:

            selfAnim.SetTrigger("BulletUp");
            atkState = state;
            break;

        case AtkState.SwitchGun:
            int index = currentIndex == 0 ? 1 : 0;    //只有两把枪
            SwitchGun(index);
            selfAnim.SetTrigger("SwitchGun");
            atkState = state;
            break;
        }

        //网络同步状态
        client.SendPlayerStateToServer(playerState, atkState);
    }
コード例 #6
0
ファイル: ObjAtkManager.cs プロジェクト: LiuFeng1011/Diablo
    public override void StartAction(InGameBaseObj target, Vector3 targetPos, int dis)
    {
        if (state == AtkState.atkbegin || state == AtkState.atkend)
        {
            return;
        }

        base.StartAction(target, targetPos, dis);

        atkTime = 0;

        //Vector3 v = (target.transform.position - parent.transform.position).normalized;
        //parent.transform.forward = v;

        state = AtkState.move;
    }
コード例 #7
0
 /// <summary>
 /// 同步状态的方法
 /// </summary>
 /// <param name="state"></param>
 public void SendPlayerStateToServer(PlayerState playerState, AtkState atkState)
 {
     try
     {
         NetworkMessage message = new NetworkMessage(5, NetworkTools.GetLocalIP(),
                                                     PlayerStateMessage.GetBytes(new PlayerStateMessage(playerState,
                                                                                                        atkState)));
         byte[] bytes = NetworkMessage.GetBytes(message);
         //Debug.Log("发送位置数据");
         //测试
         SendMsg(RoomSingle.roomIP, NetworkConstent.UDPServerPort, bytes);
     }
     catch (Exception e)
     {
         Debug.LogError(e.ToString());
     }
 }
コード例 #8
0
 public Monster(string name, int MonAtk, int MonHp, int crit, int critAttack, Image imageMon, Image imageskill, Text textHP, Text textDam)
 {
     Name          = name;
     Atk           = MonAtk;
     MaxHP         = MonHp;
     HPnow         = MaxHP;
     Crit          = crit;
     CritAtk       = critAttack;
     AtkTimer      = 0f;
     State         = AtkState.Init;
     ImageMon      = imageMon;
     Skill         = imageskill;
     Skill.color   = new Color(1, 1, 1, 0);
     textHP.text   = HPnow + "/" + MonHp;
     HPtext        = textHP;
     textDam.color = new Color(1, 1, 1, 0);
     DamageText    = textDam;
 }
コード例 #9
0
ファイル: PlayerAI.cs プロジェクト: zhzhzx123/LMZLight
    /// <summary>
    /// 切换攻击状态
    /// </summary>
    protected override void SwitchAtkState(AtkState state)
    {
        if (playerState == PlayerState.Death)
        {
            return;
        }
        if (atkState == state)
        {
            return;
        }
        switch (state)
        {
        case AtkState.None:
            break;

        case AtkState.Shoot:
            //判断武器是否自动
            if (currentGun.data.IsAuto)
            {
                selfAnim.SetTrigger("MultiShoot");
            }
            else
            {
                selfAnim.SetTrigger("SingleShoot");
            }
            atkState = state;
            //currentGun.PlayEffect();
            break;

        case AtkState.BulletUp:
            selfAnim.SetTrigger("BulletUp");
            break;

        case AtkState.SwitchGun:
            int index = currentIndex == 0 ? 1 : 0;//只有两把枪
            SwitchGun(index);
            selfAnim.SetTrigger("SwitchGun");
            break;
        }

        atkState = state;
    }
コード例 #10
0
ファイル: ObjAtkManager.cs プロジェクト: LiuFeng1011/Diablo
 public override void Init(InGameBaseCharacter parent, Vector3 targetPos)
 {
     base.Init(parent, targetPos);
     state = AtkState.non;
 }
コード例 #11
0
ファイル: PlayerAI.cs プロジェクト: zhzhzx123/LMZLight
 public void SetState(PlayerState s1, AtkState s2)
 {
     SwitchPlayerState(s1);
     SwitchAtkState(s2);
 }
コード例 #12
0
        public PlayerStateMessage(PlayerState state, AtkState atkstate)
        {
            this.state = state;

            this.atkState = atkstate;
        }
コード例 #13
0
 protected virtual void SwitchAtkState(AtkState state)
 {
 }
コード例 #14
0
ファイル: IPlayer.cs プロジェクト: scottvossen/BattleShip
 public override void UpdateAttackResults(Coordinate lastAttack, AttackResult result, bool sunkShip)
 {
     switch (atkState)
     {
         case AtkState.StabInTheDark:
             if (result == AttackResult.Hit)
             {
                 atkState = AtkState.FindFollowUp;
                 firstHit = new AttackInfo(lastAttack, result, sunkShip);
                 targets = CalcAdjCoords(lastAttack).FindAll(t => Attacks[t.X, t.Y].Result == AttackResult.Unknown);
             }
             break;
         case AtkState.FindFollowUp:
             if (sunkShip) { atkState = AtkState.StabInTheDark; break; }
             if (result == AttackResult.Hit)
             {
                 atkState = AtkState.FinishEmOff;
                 secondHit = new AttackInfo(lastAttack, result, sunkShip);
                 targets.Clear();
             }
             break;
         case AtkState.FinishEmOff:
             if (result == AttackResult.Hit && sunkShip)
             {
                 atkState = AtkState.StabInTheDark;
                 firstHit = null;
                 secondHit = null;
             }
             break;
         default:
             atkState = AtkState.StabInTheDark;
             break;
     }
     base.UpdateAttackResults(lastAttack, result, sunkShip);
 }
コード例 #15
0
ファイル: IPlayer.cs プロジェクト: scottvossen/BattleShip
 public override Coordinate Attack()
 {
     switch (atkState)
     {
         case AtkState.StabInTheDark:
             return CalcRandomAttack();
         case AtkState.FindFollowUp:
             if (targets.Count == 0) { atkState = AtkState.StabInTheDark; return CalcRandomAttack(); }
             Random r = new Random();
             int i = r.Next(targets.Count);
             Coordinate target = targets[i];
             targets.RemoveAt(i);
             return target;
         case AtkState.FinishEmOff:
             Coordinate c = FinishEmOff();
             if (c == null) { atkState = AtkState.StabInTheDark; return CalcRandomAttack(); }
             return c;
         default:
             atkState = AtkState.StabInTheDark;
             return CalcRandomAttack();
     }
 }