public override void OnAction(L2Player player) { player.SendMessage(AsString()); // TimeSpan ts = dtstart - DateTime.Now; // player.sendMessage($"timems {(ts.TotalMilliseconds)}"); bool newtarget = false; if (player.CurrentTarget == null) { player.CurrentTarget = this; newtarget = true; } else { if (player.CurrentTarget.ObjId != ObjId) { player.CurrentTarget = this; newtarget = true; } } if (newtarget) { player.SendPacket(new MyTargetSelected(ObjId, player.Level - Template.Level)); StatusUpdate su = new StatusUpdate(ObjId); su.Add(StatusUpdate.CurHp, (int)CurHp); su.Add(StatusUpdate.MaxHp, (int)CharacterStat.GetStat(EffectType.BMaxHp)); player.SendPacket(su); } else { player.AiCharacter.Attack(this); } }
void Awake() { if (Instance == null) { Instance = this; } }
protected CharacterStat GetChangement(int idx) { CharacterStat result = CharacterStat.zero; Type type = typeof(CharacterStat); foreach (PropertyInfo property in type.GetProperties()) { string propertyName = property.Name; if (propertyName.StartsWith("raw") || property.SetMethod == null) { continue; } string value = fixedEventData[idx][propertyName].ToString(); if (value.ToString().Length == 0) { continue; } int integerValue = int.Parse(value); property.SetValue(result, integerValue); } return(result); }
public override void onAction(L2Player player) { player.sendMessage(asString()); // TimeSpan ts = dtstart - DateTime.Now; // player.sendMessage("timems "+(ts.TotalMilliseconds)); bool newtarget = false; if (player.CurrentTarget == null) { player.CurrentTarget = this; newtarget = true; } else { if (player.CurrentTarget.ObjID != this.ObjID) { player.CurrentTarget = this; newtarget = true; } } if (newtarget) { player.sendPacket(new MyTargetSelected(ObjID, player.Level - Template.Level)); StatusUpdate su = new StatusUpdate(ObjID); su.add(StatusUpdate.CUR_HP, (int)CurHP); su.add(StatusUpdate.MAX_HP, (int)CharacterStat.getStat(TEffectType.b_max_hp)); player.sendPacket(su); } else { player.AICharacter.Attack(this); } }
public static void CKMove(this CharacterController cc, Vector3 targetPosition, CharacterStat stat) { Transform t = cc.transform; Vector3 deltaMove = Vector3.zero; Vector3 moveDir = targetPosition - t.position; moveDir.y = 0.0f; if (moveDir != Vector3.zero) { t.rotation = Quaternion.RotateTowards( t.rotation, Quaternion.LookRotation(moveDir), stat.TurnSpeed * Time.deltaTime); } Vector3 nextMove = Vector3.MoveTowards( t.position, targetPosition, stat.MoveSpeed * Time.deltaTime); deltaMove = nextMove - t.position; deltaMove += Physics.gravity * Time.deltaTime; cc.Move(deltaMove); }
void Start() { target = this.GetComponent <Transform>(); stat = this.gameObject.GetComponent <CharacterStat>(); enemy = this.gameObject.GetComponent <EnemyAIScript01>(); GameObject goPlayer = GameObject.FindGameObjectWithTag("Player"); if (goPlayer == null) { Debug.LogError("Cant Find Player..."); Debug.Break(); } player = goPlayer.transform; if (target == null) { Debug.LogError("Target is null"); } if (player == null) { Debug.LogError("player is null"); } foreach (Canvas c in FindObjectsOfType <Canvas>()) { if (c.renderMode == RenderMode.ScreenSpaceOverlay) { target = Instantiate(textPrefab, c.transform).transform; enemyText = target.GetChild(0).GetComponent <Text>(); break; } } }
public Entity_Stats(double health, double initative, double action_Points, double bonus_Action_Points) { Health = new CharacterStat(health); Initative = new CharacterStat(initative); Action_Points = new CharacterStat(action_Points); Bonus_Action_Points = new CharacterStat(bonus_Action_Points); }
private void Start() { player = GameManage.instance.player; for (int i = 0; i < GameManage.instance.num_char; i++) { if (Vector3.Distance(player[i].transform.position, this.transform.position) < 3) { char_stat = player[i].gameObject.GetComponent <CharacterStat>(); if (char_stat.tag == "Player") { char_stat.GetDamage(10f, false); } vector3_temp = player[i].transform.position; vector3_temp.z = -5; skill_around_prefab_temp = Instantiate(skill_around_hit_prefab, vector3_temp, Quaternion.identity);//맞은 이펙트 Destroy(skill_around_prefab_temp, 0.5f); vector3_temp = player[i].transform.position - this.transform.position; vector3_temp.z = 0; player[i].transform.Translate(0.2f * (vector3_temp.normalized)); //닿은 사람 밀어내고 } } }
private void UpdateCharacterStat(CharacterStat whichStat, int statValue) { var stats = _characterRepository.MainCharacter.Stats; stats = stats.WithNewStat(whichStat, statValue); _characterRepository.MainCharacter = _characterRepository.MainCharacter.WithStats(stats); }
public double ReturnStat(CharacterStat stat) { switch (stat) { case CharacterStat.Damage: return(Stats.damage); case CharacterStat.CritChance: break; case CharacterStat.CritDamage: break; case CharacterStat.MainStat: return(Stats.mainStat); case CharacterStat.Vitality: return(Stats.vitality); case CharacterStat.BotDamage: return(Stats.botDamage); case CharacterStat.BotAttackSpeed: return(Stats.BotAttackSpeed); } return(0); }
// Start is called before the first frame update void Start() { oldStat = FindObjectOfType <StatHolder>().oldStat; nextScene = "Main_progress"; LoadStatInfoList(); LoadStatList(); UpdateStatList(); if (oldStat != null) { foreach (Stat stat in statList) { StartCoroutine(IncreaseStat(stat)); } } done.onClick.AddListener(() => { EndScene(); }); }
public void ModifyStat(CharacterStat stat, ref float value) { foreach (var provider in providers) { provider.ModifyStat(stat, ref value); } }
public void Raise(CharacterStat characterStat) { for (int i = this.listeners.Count - 1; i >= 0; --i) { this.listeners[i].OnEventRaised(characterStat); } }
public void Load(int charId) { Stats = new CharacterStat(charId); Task.WaitAll(Stats.LoadFromDB()); Look = new AvatarLook(); Look.CopyStats(Stats); using (var conn = new NpgsqlConnection(Constants.DB_World0_ConString)) { conn.Open(); using (var cmd = new NpgsqlCommand($"SELECT item_id, inventory_slot FROM {Constants.DB_All_World_Schema_Name}.char_inventory_equips " + $"WHERE character_id = {charId} AND inventory_slot < 0 AND inventory_slot > -200" + $"ORDER BY inventory_slot ASC", conn)) using (var r = cmd.ExecuteReader()) while (r.Read()) { var slot = Math.Abs(r.GetInt16(1)); if (slot >= 100) { slot -= 100; } if (Look.aEquip[slot] == 0) { Look.aEquip[slot] = r.GetInt32(0); } else { Look.aUnseenEquip[slot] = r.GetInt32(0); } } } }
void Awake() { if (Instance) { Destroy(gameObject); } else { DontDestroyOnLoad(gameObject); Instance = this; } xp = 100; fireBallRange = new CharacterStat(30); //initial range = 15 fireBallCooldown = new CharacterStat(2); //initial cooldown = 2 seconds fireBallDamage = new CharacterStat(15); //inital damage of 20 fireBallProjectilesNumber = new CharacterStat(1); //only one projectile in the beginning chainRange = new CharacterStat(25); //initial range = 25 chainCooldown = new CharacterStat(2); //initial cooldown = 2 seconds chainDamage = new CharacterStat(10); //inital damage of 5 chainNumberBounces = new CharacterStat(2); //initial 2 bounces poisonRange = new CharacterStat(20); //initial range = 20 poisonCooldown = new CharacterStat(2); //initial cooldown = 2 seconds poisonDamage = new CharacterStat(10); //inital damage of 5 poisonTime = new CharacterStat(2); //initial time = 2 seconds fireBallNodes = new Dictionary <string, SkillTreeNode>(); chainNodes = new Dictionary <string, SkillTreeNode>(); poisonNodes = new Dictionary <string, SkillTreeNode>(); }
void select() { if (!soundPlayed) { soundPlayed = true; if (charactersMenu.isJustOpened()) { charactersMenu.setOpened(); } else { charactersMenu.characterSelectSound.Play(); } stat = CharacterManager.cm.character(name); charactersMenu.characterName.text = stat.characterName; setRarity(charactersMenu.rarity); charactersMenu.description.text = stat.skillName; if (stat.skillName != "") { charactersMenu.description.text += ": " + SkillManager.sm.getSkill(stat.skillCode()).description; } checkBought(); } transform.localPosition = new Vector3(transform.parent.localPosition.x, charactersMenu.selectedOffset_y, charactersMenu.selectedOffset_z); transform.Rotate(-Vector3.up * Time.deltaTime * charactersMenu.selectedCharacterRotationSpeed); if (scaleChanging != originalScale.x * 2) { scaleChanging = Mathf.MoveTowards(scaleChanging, originalScale.x * 2, Time.deltaTime * charactersMenu.scaleChangingSpeed); transform.localScale = new Vector3(scaleChanging, scaleChanging, scaleChanging); } Transform aura = transform.Find("aura"); if (aura != null) aura.gameObject.SetActive(true); }
public void AttackCheck() { CharacterStat targetStat = _manager.Target.GetComponent <CharacterStat>(); CharacterStat.ProcessDamage(_manager.Stat, targetStat); }
private void OnMouseDown() { // 마우스: -1, 모바일: 0 이상 if (EventSystem.current.IsPointerOverGameObject(-1) == true) { return; } if (EventSystem.current.IsPointerOverGameObject(0) == true) { return; } if (GameManager.instance.nowSelect == 1) { characterPrefab = characterPrefab1; characterStat = characterPrefab.GetComponent <CharacterStat>(); } else if (GameManager.instance.nowSelect == 2) { characterPrefab = characterPrefab2; characterStat = characterPrefab.GetComponent <CharacterStat>(); } if (character == null) { CharacterStat characterStat = characterPrefab.GetComponent <CharacterStat>(); if (characterStat.canCreate(GameManager.instance.seed)) { character = (GameObject)Instantiate(characterPrefab, transform.position, Quaternion.identity); GameManager.instance.CharacterAddCount++; audioSource.PlayOneShot(audioSource.clip); GameManager.instance.seed -= character.GetComponent <CharacterStat>().cost; GameManager.instance.updateText(); } } }
private string GetModifiersText(CharacterStat stat) { sb.Length = 0; for (int i = 0; i < stat.StatModifiers.Count; i++) { StatModifier mod = stat.StatModifiers[i]; sb.Append(((Item)mod.Source).name); sb.Append(": "); if (mod.Value > 0) { sb.Append("+"); } if (mod.Type == StatModType.Flat) { sb.Append(mod.Value); } else { sb.Append(mod.Value * 100); sb.Append("%"); } if (i < stat.StatModifiers.Count - 1) { sb.AppendLine(); } } return(sb.ToString()); }
void Start() { animator = GetComponent <Animator>(); characterStats = GetComponent <CharacterStat>(); //target = GameObject.Find("redWarrior").GetComponent<Transform>(); //enemy = GameObject.Find("redWarrior"); }
public void TestActionDamageAccuracyWAR() { // Example: i340 WAR using Heavy Swing double potency = 160; double weaponDamage = 99; double attackPower = 2149; double determination = 1236; JobID jobID = JobID.WAR; CharacterStat stat = CharacterStat.STRENGTH; double tenacity = 1007; double empiricalMax = 2095; // via in-game testing double empiricalMin = 1903; // via in-game testing double empiricalMid = (empiricalMax + empiricalMin) / 2; double traitMultiplier = 1; double tenacityMultiplier = Formulas.calculateTenacityMultiplier(tenacity); double determinationMultiplier = Formulas.calculateDeterminationMultiplier(determination); double result = Formulas.calculateActionDamage(potency, weaponDamage, attackPower, jobID, stat); result = Math.Truncate(result * tenacityMultiplier * determinationMultiplier * traitMultiplier); Assert.IsTrue((result > (empiricalMid * 0.99)) && (result < (empiricalMid * 1.01))); }
private string GetStatTopText(CharacterStat stat, string statName) { sb.Length = 0; statName = CheckStatNameLanguage(statName); sb.Append(statName); sb.Append(" "); sb.Append(stat.Value); StatModifiersLabelText.enabled = false; if (stat.Value != stat.BaseValue) { sb.Append(" ("); sb.Append(stat.BaseValue); if (stat.Value > stat.BaseValue) { sb.Append("+"); } sb.Append("<color=lime>" + System.Math.Round(stat.Value - stat.BaseValue, 4) + "</color>"); sb.Append(")"); StatModifiersLabelText.enabled = true; } return(sb.ToString()); }
// 아이템 팔 때 발생하는 이벤트 // 아이템을 팔 때, 캐릭터 스텟을 가져와서 캐릭터 스텟을 수정한다. public void OnDropItemSellEvent(Item draggedItem) { if (PlayerItems.Count == 0) { return; } // TODO : 골드 최대치 검사하는 코드 넣기 // 아이템 해제 후 캐릭터 스텟 수정 { if (Managers.Game.Player == null) { return; } CharacterStat characterStat = Managers.Game.Player.GetComponent <PlayerController>().Stat; ItemStat itemStat = draggedItem.ItemStat; characterStat.ItemUnEquipment(itemStat); } Managers.Game.Player.GetComponent <CharacterStat>().Gold += draggedItem.GetComponent <ItemStat>().Price; PlayerItems.Remove(draggedItem); // 아이템을 팔 때는 아이템이 사라지는 것이니까 특별히 아래와 같은 코드를 넣어줄 것 draggedItem.ItemImage.raycastTarget = true; draggedItem.ItemCanvas.sortingOrder = 0; draggedItem.ItemCanvas.overrideSorting = false; Managers.Resource.Destroy(draggedItem.gameObject); }
protected virtual void UpdateMaxLifeAndMana() { int previousMaxLife = (int)totalLife.Value; int previousMaxMana = (int)totalMana.Value; totalLife = new CharacterStat(Formulas.CalculateLifePoints((int)constitution.Value)); totalMana = new CharacterStat(Formulas.CalculateManaPoints((int)spirit.Value)); currentLife += (int)(totalLife.Value - previousMaxLife); currentMana += (int)(totalMana.Value - previousMaxMana); if (currentLife <= 0) { currentLife = 1; } else if (currentLife > totalLife.Value) { currentLife = (int)totalLife.Value; } if (currentMana <= 0) { currentMana = 0; } else if (currentMana > totalMana.Value) { currentMana = (int)totalMana.Value; } }
void Start() { m_originPos = transform.position; theInGame = FindObjectOfType <InGameManager>(); theCardInfo = FindObjectOfType <MyCardInfo>(); theCStat = FindObjectOfType <CharacterStat>(); m_aniCtrl = GetComponent <Animator>(); // 해당 유형의 비활성화 된 객체도 가져온다 // theCharSlot = Resources.FindObjectsOfTypeAll<CharacterSlot>(); // 해당 유형의 비활성화 된 객체도 가져온다 // InGameManager 에서 몇 번째꺼가 켜져있나 //m_charActiveNum = (int)eCharNum * 9 + m_charSlotNum; // InGameManager 에서 몇 번째꺼가 켜져있나 dist = 1000; // 스폰 시 최초 한 번 실행 될 effect EffectActive.EffectInstance.CharacterSpawn(this.transform); // 스폰 시 최초 한 번 실행 될 effect }
void Start() { characterStat = gameObject.GetComponent <CharacterStat>(); gameManager = GameObject.Find("Game Manager").GetComponent <GameManager>(); animator = gameObject.GetComponent <Animator>(); audioSource = gameObject.GetComponent <AudioSource>(); }
private string GetStatModifiersText(CharacterStat stat) { sb.Length = 0; foreach (StatModifier mod in stat.StatModifiers) { if (sb.Length > 0) { sb.AppendLine(); } if (mod.Value > 0) { sb.AppendLine(); } sb.Append(mod.Value); EquippableItem item = mod.Source as EquippableItem; if (item != null) { sb.Append(" "); sb.Append(item.ItemName); } else { Debug.LogError("Mod is not as EI"); } } return(sb.ToString()); }
public void ShowToolTip(CharacterStat stat, string statName) { StatNameText.text = GetStatTopText(stat, statName); StatModifiersText.text = GetStatModifiersText(stat); gameObject.SetActive(true); }
private void OnTriggerEnter(Collider other) { //prevent attack to self or teammates if (other.CompareTag("Enemy") && bulletStat.attacker.CompareTag("Player")) { CharacterStat stat = other.GetComponent <CharacterStat>(); if (stat != null) { stat.OnDamage(bulletStat.totalDamage); } if (bulletStat.isFlinch) { other.SendMessage("Flinch", transform.rotation * dirction, SendMessageOptions.DontRequireReceiver); } } else if (other.CompareTag("Player") && bulletStat.attacker.CompareTag("Enemy")) { CharacterStat stat = other.GetComponent <CharacterStat>(); if (stat != null) { stat.OnDamage(bulletStat.totalDamage); } if (bulletStat.isFlinch) { other.SendMessage("Flinch", transform.rotation * dirction, SendMessageOptions.DontRequireReceiver); } } Destroy(gameObject); }
public void TakeDamage(CharacterStat from, float damage) { if (damage >= Defense) { _hp = Mathf.Clamp(_hp - (damage - this.Defense), 0, _maxHp); } if (from.isPlayer) { var playerStat = from as PlayerStat; if (PlayerFSMManager.Instance.isNormal && !PlayerFSMManager.Instance.isSkill3 && !PlayerFSMManager.Instance.isSkill2AttackTime) { PlayerFSMManager.Instance.SpecialGauge += playerStat.feverGaugeGetValue; } if (PlayerFSMManager.Instance.isNormal && PlayerFSMManager.Instance.isSkill2AttackTime && !PlayerFSMManager.Instance.isSkill3) { PlayerFSMManager.Instance.SpecialGauge += playerStat.skill2GaugeGetValue; } if (PlayerFSMManager.Instance.isNormal && PlayerFSMManager.Instance.isSkill3) { PlayerFSMManager.Instance.SpecialGauge += playerStat.skill3GaugeGetValue; } } }
public static void JJMove(CharacterController cc, Transform target, CharacterStat stat) { Transform transform = cc.transform; //B-A는 A에서 B로 향하는 벡터. Vector3 dir = target.position - transform.position; dir.y = 0.0f; if (dir != Vector3.zero) { transform.rotation = Quaternion.RotateTowards ( transform.rotation, Quaternion.LookRotation(dir), stat.turnSpeed * Time.deltaTime ); } //transform.position = Vector3.MoveTowards( // transform.position, // manager.marker.position, // manager.stat.moveSpeed * Time.deltaTime); Vector3 deltaMove = Vector3.MoveTowards( transform.position, target.position, stat.moveSpeed * Time.deltaTime) - transform.position; deltaMove.y = -stat.fallSpeed * Time.deltaTime; cc.Move(deltaMove); }
public SetStatMessage(CharacterStat stat, int value) : this() { this.Stat = stat; this.Value = value; }
public double ReturnStat(CharacterStat stat) { switch (stat) { case CharacterStat.Damage: return Stats.damage; case CharacterStat.CritChance: break; case CharacterStat.CritDamage: break; case CharacterStat.MainStat: return Stats.mainStat; case CharacterStat.Vitality: return Stats.vitality; case CharacterStat.BotDamage: return Stats.botDamage; case CharacterStat.BotAttackSpeed: return Stats.BotAttackSpeed; } return 0; }