public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { base.OnStateEnter(animator, stateInfo, layerIndex); movementHash = Animator.StringToHash("AradisMovement"); facingRight = (agentGFX.localRotation.y < 0) ? true : false; attackCheck = animator.GetComponent <AttackCheck>(); }
public override void OnStateEnter(Animator animator, AnimatorStateInfo animatorStateInfo, int layerIndex) { base.OnStateEnter(animator, animatorStateInfo, layerIndex); attackTriggerHash = Animator.StringToHash("AgentAttack"); cooldown = maxCooldown; attackCheck = animator.GetComponent <AttackCheck>(); attackCheck.isAttacking = false; attackCheck.canDealDamage = true; }
// Use this for initialization void Start() { // player = GameObject.FindGameObjectWithTag("Player"); attack = transform.GetChild(0).gameObject.GetComponent <AttackCheck>(); animplayer = GetComponent <Animator>(); playerCtro = GetComponent <PLCL.PlayerController> (); isground = transform.GetChild(1).gameObject.GetComponent <isGround> (); rigi2d = gameObject.GetComponent <Rigidbody2D>(); c2d_player = GetComponent <CapsuleCollider2D>(); dirX = Vector2.zero; Attackforce = Vector2.zero; }
public Attack PerformMainHandAttack(int targetArmorClass) { //Отметим, что действие в этот ход уже совершалось actionAvailable = false; DamageDieRoll damageDice = null; DamageType damageType = DamageType.Bludgeoning; // Если оружия в руках нет - тип урона рукопашной атаки по умолчанию дробящий List <DieRoll> additionalDamageRolls = null; List <Modifier> additionalDamageModifiers = null; if (onMainHand != null) { damageDice = new DamageDieRoll(onMainHand.DamageDice, onMainHand.DamageType); } else { //Рукопашная атака наносит 1 повреждение + бонус Силы damageDice = new DamageDieRoll(DiceSet.GetByName("none"), damageType); additionalDamageModifiers = new List <Modifier> { new DamageModifier("Unarmed strike", 1, damageType), new DamageModifier(Ability.Strenght.Shortcut, Ability.GetAbilityModifier(currentStrenght), damageType) }; } AttackCheckBuilder attackBuilder = new AttackCheckBuilder( Ability.Strenght, currentStrenght, targetArmorClass, masteryBonus, new RollWithCriticals()); ValueDefinitionDirector.ConstructValueDefinition(attackBuilder); AttackCheck attackCheck = attackBuilder.GetResult() as AttackCheck; DamageValueBuilder damageValueBuilder = new DamageValueBuilder( damageDice, Ability.Strenght, currentStrenght, false, additionalDamageRolls, additionalDamageModifiers); ValueDefinitionDirector.ConstructValueDefinition(damageValueBuilder); DamageValueDefinition damageValueDefinition = damageValueBuilder.GetResult() as DamageValueDefinition; return(new Attack(attackCheck, damageValueDefinition)); }
public Attack(AttackCheck attackCheck, DamageValueDefinition damageDefinition) { this.attackCheck = attackCheck; this.damageDefinition = damageDefinition; }