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 }
// 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; }
//몬스터의 상태값에 따라 적정한 동작을 수행하는 함수 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); } }
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)); }