Ejemplo n.º 1
0
    // 1. 캐릭터 액션 함수 호출하기
    //_charic.Act_start(Charic.eAct.appear);
    // 2. 캐릭터 액션 함수 호출 (Hashtable 사용)
    //Hashtable hash = new Hashtable(); hash.Add("time", 1.0f); _charic.Act_start(Charic.eAct.appear, hash);
    // 3. Hashtable 사용
    // float time = (float)args["time"];

    //--------------------------------------------------------------------------
    public virtual int Act_start(eAct _act, Hashtable args = null, bool _force = true)
    {
        //동일 액션 회피 ---------------------------------
        if (!_force)
        {
            if (_act == kAct_cur)
            {
                return(-1);
            }
        }

        //액션 우선순위 체크 ------------------------------
        switch (_act)
        {
        case eAct.run:
        case eAct.attack:
            if (kAct_cur == eAct.die)
            {
                return(-1);
            }
            if (kAct_cur == eAct.disappear)
            {
                return(-1);
            }
            break;

        case eAct.hit:
            if (kAct_cur == eAct.attack)
            {
                return(-1);                             // 공격중에는 데미지만 처리.
            }
            if (kAct_cur == eAct.die)
            {
                return(-1);
            }
            if (kAct_cur == eAct.disappear)
            {
                return(-1);
            }
            break;

        case eAct.die:
            if (kAct_cur == eAct.disappear)
            {
                return(-1);
            }
            break;
        }

        //액션 변경 --------------------------------------
        kAct_old = kAct_cur;
        kAct_cur = _act;

        Act_update(true);  //act start

        return(0);
    }
Ejemplo n.º 2
0
 public static bool CouldShow(eAct act)
 {
     return (act == eAct.Normal || act == eAct.Reported);
 }