Beispiel #1
0
 public void AddBuff(CharacterAttribute stat, int mod)
 {
     try {
         buffs.Add (stat, mod);
     }
     catch(Exception e) {
         Debug.LogWarning(e.ToString());
     }
 }
    void Start()
    {
        character = GetComponent<Character>();

        CharacterAttribute attribute = new CharacterAttribute();
        attribute.RSPD = 16;
        attribute.RACL = 8;
        attribute.JSPD = 20;
        attribute.JS = 2;
        attribute.ACD = 0.3f;

        character.InitCharacter(attribute);
    }
 public static string AsText(CharacterAttribute value)
 {
     switch (value)
     {
         case CharacterAttribute.Charisma:
             return CharacterAttributes.Charisma;
         case CharacterAttribute.Constitution:
             return CharacterAttributes.Constitution;
         case CharacterAttribute.Dexterity:
             return CharacterAttributes.Dexterity;
         case CharacterAttribute.Intelligence:
             return CharacterAttributes.Intelligence;
         case CharacterAttribute.Strength:
             return CharacterAttributes.Strength;
         case CharacterAttribute.Wisdom:
             return CharacterAttributes.Wisdom;
         default:
             return string.Empty;
     }
 }
    public float value; //Base Value of Attribute

    #endregion Fields

    #region Constructors

    public CharacterAttAttribute(CharacterAttribute.AttributeName n)
    {
        name = n;
        //	value = att.BaseValue
    }
Beispiel #5
0
    // Update is called once per frame
    void Update()
    {
        if (CharacterAttribute.GetInstance().isOverLoad_breath)
        {
            Img.color = Color.Lerp(overload_min, overload_max, CharacterAttribute.GetInstance().Breath_real / CharacterAttribute.GetInstance().MaxBreath);
        }
        else
        {
            Img.color = normal;
        }

        rTrans.sizeDelta = GameFunction.getVector2(CharacterAttribute.GetInstance().Breath_real * 183 / CharacterAttribute.GetInstance().MaxBreath, 18);
    }
 public void InitCharacter(CharacterAttribute attribute)
 {
     this.attribute = attribute;
 }
Beispiel #7
0
    //몬스터의 상태값에 따라 적정한 동작을 수행하는 함수

    IEnumerator MonsterAction()
    {
        while (!isDie)
        {
            if (hp <= 0)
            {
                MonsterDie();
            }
            switch (monsterState)
            {
            //idle 상태
            case MonsterState.idle:
                fire = 0;
                //추적 중지
                nvAgent.Stop();
                _animation.CrossFade(anim.idle.name, 0.3f);
                break;

            case MonsterState.modori:
                fire = 0;
                Vector3 dir1 = ModoruPoint.transform.position - transform.position;
                transform.position += (dir1 * Time.deltaTime * 0.5f);
                // nvAgent.destination = ModoruPoint.position;
                _animation.CrossFade(anim.idle.name, 0.3f);
                break;

            //추적 상태
            case MonsterState.trace:
                fire = 0;
                Vector3 dir = Target.transform.position - transform.position;
                dir.Normalize();
                float distance = Vector3.Distance(Target.transform.position, transform.position);
                _animation.CrossFade(anim.idle.name, 0.3f);
                CharacterAttribute targetAttribute = Target.GetComponent <CharacterAttribute>();
                CharacterAttribute myAttribute     = gameObject.GetComponent <CharacterAttribute>();
                if (distance > targetAttribute.Radius + myAttribute.Radius)
                {
                    transform.position += (dir * Speed * Time.deltaTime);    //슬라임 입장에서 대상과 나의 몸통의 반지름 정보를 얻어온다.
                                                                             //그후에 대상과 나의거리를 체크하여,거리가 대상과 나의 반지름의 합보다 크면 이동하게되어있다.
                }

                //추적 대상의 위치를 넘겨줌

                nvAgent.destination = playerTr.position;



                break;

            //공격 상태
            case MonsterState.attack:
                //추적 중지
                nvAgent.Stop();
                //IsAttack을 true로 설정해 attack State로 전
                _animation.CrossFade(anim.idle.name, 0.3f);
                fire = 1;
                StartCoroutine("TransStateToMove", 0);


                //yield return new WaitForSeconds(1);//1초후 상태변경
                break;
            }
            yield return(null);
        }
    }
Beispiel #8
0
 public async UniTask CreateCharacterAttribute(MySqlConnection connection, MySqlTransaction transaction, int idx, string characterId, CharacterAttribute characterAttribute)
 {
     await ExecuteNonQuery(connection, transaction, "INSERT INTO characterattribute (id, idx, characterId, dataId, amount) VALUES (@id, @idx, @characterId, @dataId, @amount)",
                           new MySqlParameter("@id", characterId + "_" + idx),
                           new MySqlParameter("@idx", idx),
                           new MySqlParameter("@characterId", characterId),
                           new MySqlParameter("@dataId", characterAttribute.dataId),
                           new MySqlParameter("@amount", characterAttribute.amount));
 }