Ejemplo n.º 1
0
    void OnDamage(DamageTrigger trigger, GameObject victim)
    {
        Player player = Player.instance;

        /*player.controller.jumpCounterCurrent = 0;
         * player.controller.Jump(false);
         * player.controller.Jump(true);*/

        float criteriaY;

        if (gravityNormal > 0.0f)
        {
            criteriaY = minVelY * (Mathf.Abs(player.controller.gravityController.gravity) / gravityNormal);
        }
        else
        {
            criteriaY = minVelY;
        }

        Vector3 lv = player.controller.localVelocity;

        if (lv.y < minVelY)
        {
            lv.y = minVelY;
            player.controller.localVelocity = lv;
        }

        if (mSound)
        {
            mSound.Play();
        }
    }
    public override void DrawSniperLine(float x0, float y0, float x1, float y1)
    {
        WeaponScript weaponScript = null;

        if (myGamePlayer.weapon != null && (bool)(weaponScript = myGamePlayer.weapon.GetComponent <WeaponScript>()) && weaponScript.totalBullets == 1)
        {
            weaponScript.totalBullets = weaponScript.clipSize + 1;
        }
        base.DrawSniperLine(x0, y0, x1, y1);
        LayerMask mask = 0;

        mask = ((int)mask | 0x4000);
        mask = ((int)mask | 0x8000);
        mask = ((int)mask | 4);
        mask = ((int)mask | 0x400);
        mask = ((int)mask | 0x800);
        mask = ((int)mask | 0x1000);
        mask = ((int)mask | 0x2000);
        mask = ~(int)mask;
        RaycastHit hitInfo;

        if (Physics.Raycast(new Ray(myGamePlayer.mRangeStart, (myGamePlayer.mRangeEnd - myGamePlayer.mRangeStart).normalized), out hitInfo, 9999f, mask))
        {
            DamageTrigger damageTrigger = hitInfo.collider.gameObject.GetComponent(typeof(DamageTrigger)) as DamageTrigger;
            if (damageTrigger != null)
            {
                damageTrigger.ApplyWallDamage(100f);
            }
        }
    }
Ejemplo n.º 3
0
    private void OnTriggerEnter(Collider other)
    {
        DamageTrigger weapon = other.gameObject.GetComponent <DamageTrigger>();

        Player.Instance.HealthBar.TakeDamage(weapon.Damage);
        _impactSound.Play();
    }
Ejemplo n.º 4
0
    void OnTriggerEnter_Hero(Collider2D other)
    {
        if (other.tag == "P_AttackRange" ||
            other.tag == "Bolt"
            )
        {
            return;
        }
//        Debug.Log("~~~~~~~~~~~~~~~~~~OnTriggerEnter_Hero : " + other.tag);
        Instantiate(explosion, transform.position, transform.rotation);
        if (other.tag == "Asteroid" ||
            other.tag == "Bolt_enemy"
            )
        {
            wt_PlayerController hero   = _RootObject.GetComponent <wt_PlayerController>();
            DamageTrigger       damage = other.GetComponent <DamageTrigger>();
            if (damage)
            {
                hero.Hurt(damage._DamageValue);
            }

            if (other.tag == "Bolt_enemy")
            {
                Destroy(other.gameObject);
            }
        }
    }
Ejemplo n.º 5
0
    // Use this for initialization
    void Awake()
    {
        DamageTrigger dt = GetComponent <DamageTrigger>();

        dt.damageCallback += OnDamage;

        mSound = GetComponent <SoundPlayer>();
    }
Ejemplo n.º 6
0
    public override void Attack(Vector3 position)
    {
        base.Attack(position);
        Transform AttackVisualisation = Object.Instantiate(attackPrefab, transform.position + transform.forward, transform.rotation);

        AttackVisualisation.parent = transform;
        StartCoroutine(DestObj(AttackVisualisation, AttackDuration));

        DamageTrigger Damager = AttackVisualisation.gameObject.AddComponent <DamageTrigger>();

        Damager.damageOnTouch = GetDamage;
        Damager.Attacker      = this;
        Damager.Team          = GetTeam;
        //PATERNE D'ATTACK
    }
Ejemplo n.º 7
0
    void OnDamageDealt(DamageTrigger trigger, GameObject victim)
    {
        if (isAlive)
        {
            dieDelay = 0.0f;

            if (stats)
            {
                stats.curHP = 0.0f;
            }
            else
            {
                state = (int)State.Dying;
            }
        }
    }
Ejemplo n.º 8
0
    public override void Attack(Vector3 position)
    {
        base.Attack(position);


        Mesh mesh = new Mesh();

        mesh.name = "AttackDectection";
        Vector3[] Vertice = new Vector3[4];

        Vertice[0] = transform.position + transform.right * 0.5f;
        Vertice[1] = transform.position - transform.right * 0.5f;
        Vertice[2] = Vertice[0] + transform.forward * AttackRange;
        Vertice[3] = Vertice[1] + transform.forward * AttackRange;

        mesh.vertices = Vertice;
        int[] triangle = { 0, 1, 2, 1, 3, 2 };
        mesh.triangles = triangle;
        mesh.RecalculateNormals();
        mesh.RecalculateBounds();

        GameObject ADGO = new GameObject("Attack Detection");

        ADGO.AddComponent <MeshFilter>().sharedMesh = mesh; //F**K THE POLICE !


        ADGO.AddComponent <MeshRenderer>().material = invinsible;
        MeshCollider colider = ADGO.AddComponent <MeshCollider>();



        colider.convex    = true;
        colider.isTrigger = true;

        Transform AttackVisualisation = ADGO.transform;

        AttackVisualisation.parent = transform;
        StartCoroutine(DestObj(AttackVisualisation, AttackDuration));

        DamageTrigger Damager = AttackVisualisation.gameObject.AddComponent <DamageTrigger>();

        Damager.damageOnTouch = GetDamage;
        Damager.Attacker      = this;
        Damager.Team          = GetTeam;
    }
Ejemplo n.º 9
0
    void OnTriggerEnter_Enemy(Collider2D other)
    {
        if (other.tag == "Asteroid" ||
            other.tag == "Bolt_enemy"
            )
        {
            return;
        }

        if (explosion != null)
        {
//            Debug.Log("~~~~~~~~~~~~~~~~~~OnTriggerEnter_Enemy : " + other.tag);
            Instantiate(explosion, transform.position, transform.rotation);
        }
        if (other.tag == "P_AttackRange" ||
            other.tag == "Bolt")
        {
            Enemy en = _RootObject.GetComponent <Enemy>();
            if (en)
            {
                DamageTrigger damage = other.GetComponent <DamageTrigger>();
                if (damage)
                {
                    en.Hurt(damage._DamageValue);
                }

                if (other.tag == "Bolt")
                {
                    Destroy(other.gameObject);
                }
                else if (other.tag == "P_AttackRange")
                {
                    float   dur = 0.5f;
                    Vector3 pos = _RootObject.transform.position + new Vector3(0.5f, 0f, 0f);
                    TweenPosition.Begin(_RootObject, dur, pos).method = UITweener.Method.EaseInOut;
                    if (en._EnemyType == E_EnemyType.normal)
                    {
                        en._AniController.PlayHit(dur);
                    }
                }
            }
        }

        //		Destroy (_RootObject ); // gameObject);
    }
Ejemplo n.º 10
0
 IEnumerator StartAttack(DamageTrigger trigger)
 {
     yield return new WaitForSeconds(trigger.StartUpTime);
     trigger.gameObject.SetActive(true);
 }
Ejemplo n.º 11
0
    public void Update()
    {
        //Mouse Pos

        Vector3 TargetPos = Utility.GetMouseWorldPosition(Owner.transform.position);

        if (TargetPos != Vector3.zero)
        {
            Quaternion TargetRotation = Quaternion.LookRotation(TargetPos - Owner.Model.transform.position);
            Owner.Model.transform.rotation = Quaternion.Slerp(Owner.Model.transform.rotation, TargetRotation, 100 * Time.deltaTime);
        }

        if (!Dash)
        {
            //Base Movement
            bool  Attacking     = AttackLastUse + Owner.AttackDuration > Time.timeSinceLevelLoad;
            float XMovement     = Input.GetAxis("Horizontal");
            float YMovement     = Input.GetAxis("Vertical");
            float SpeedModifier = 1;
            if (Attacking)
            {
                SpeedModifier *= 0.2f;
            }


            //Dash

            if (Input.GetButtonDown("Fire2") & LastDashUse + Owner.DashCD <= Time.timeSinceLevelLoad & !Attacking)
            {
                DashGoal = TargetPos;
                Dash     = true;
                //================Create Trail========================//

                Owner.UseDash();


                Mesh      mesh           = new Mesh();
                Transform ChildTransform = Owner.Model.transform;
                mesh.name = "Trail_Mesh";
                Vector3[] Vertice = new Vector3[4];

                Vertice[0] = ChildTransform.position + ChildTransform.right * 0.5f;
                Vertice[1] = ChildTransform.position - ChildTransform.right * 0.5f;
                Vertice[2] = Vertice[0] + ChildTransform.forward * 0.1f;
                Vertice[3] = Vertice[1] + ChildTransform.forward * 0.1f;

                mesh.vertices = Vertice;
                int[] triangle = { 0, 1, 2, 1, 3, 2 };
                mesh.triangles = triangle;
                mesh.RecalculateNormals();
                mesh.RecalculateBounds();

                GameObject TrailGO = new GameObject("Trail");

                MeshFilter TrailMesh = TrailGO.AddComponent <MeshFilter>();
                TrailMesh.sharedMesh = mesh;
                MeshRenderer renderer = TrailGO.AddComponent <MeshRenderer>();
                MeshCollider colider  = TrailGO.AddComponent <MeshCollider>();



                colider.convex    = true;
                colider.isTrigger = true;

                renderer.material = Owner.TrailMat;
                Trail             = TrailGO.transform;

                return;
            }

            Vector3 Movement = new Vector3(XMovement, 0, YMovement).normalized *Time.smoothDeltaTime *Owner.GetSpeed *SpeedModifier;
            Owner.transform.position += Movement;
            lastDirVector             = Movement;

            if (Input.GetButtonDown("Fire1") & AttackLastUse + Owner.AttackCD < Time.timeSinceLevelLoad)
            {
                Transform AttackVisualisation = Object.Instantiate(Owner.prefab, Owner.transform.position + Owner.Model.transform.forward, Owner.Model.transform.rotation);
                AttackVisualisation.parent = Owner.Model.transform;
                Owner.DestroyObject(AttackVisualisation, Owner.AttackDuration);
                AttackLastUse = Time.timeSinceLevelLoad;

                DamageTrigger Damager = AttackVisualisation.gameObject.AddComponent <DamageTrigger>();
                Damager.damageOnTouch = Owner.GetDamage;
                Damager.Attacker      = Owner;
                Damager.Team          = Owner.GetTeam;
            }
        }
        else
        {
            Vector3 DashDirection = DashGoal - Owner.transform.position;
            float   CurSpeed      = Time.smoothDeltaTime * (Owner.GetSpeed * Owner.DashMultiplierSpeed);
            if (DashDirection.magnitude <= CurSpeed)
            {
                CurSpeed    = DashDirection.magnitude;
                Dash        = false;
                LastDashUse = Time.timeSinceLevelLoad;
                //DestroyTrail
                Owner.DestroyObject(Trail, 0.5f);
                DamageTrigger Damager = Trail.gameObject.AddComponent <DamageTrigger>();
                Damager.damageOnTouch = Mathf.CeilToInt(Owner.GetDamage * 1.5f);
                Damager.Attacker      = Owner;
                Damager.Team          = Owner.GetTeam;
                //Check All Colision With Trail
            }
            DashDirection = DashDirection.normalized;
            Vector3 Movement = DashDirection * CurSpeed;
            Owner.transform.position += Movement;
            Mesh      mesh           = Trail.GetComponent <MeshFilter>().mesh;
            Transform ChildTransform = Owner.Model.transform;
            //Update Trail Position
            Vector3[] Vertice = mesh.vertices;
            Vertice[2]    = ChildTransform.position + ChildTransform.right * 0.5f;
            Vertice[3]    = ChildTransform.position - ChildTransform.right * 0.5f;
            mesh.vertices = Vertice;
            mesh.RecalculateBounds();
            Trail.GetComponent <MeshCollider>().sharedMesh = mesh;
        }
    }
Ejemplo n.º 12
0
 internal void OnDamageTrigger(IEntity sender)
 {
     DamageTrigger?.Invoke(sender);
 }
Ejemplo n.º 13
0
 void OnStarLargeHit(DamageTrigger trigger, GameObject victim)
 {
     ResetCharge();
 }
Ejemplo n.º 14
0
 public void OnReceiveDamagePertime(BattleCharacter giver, BattleCharacter receiver, DamageTrigger trigger)
 {
     onReceiveDamagePertime(giver, receiver, trigger);
 }
Ejemplo n.º 15
0
 public static int CalculateAndGet(BattleCharacter giver, BattleCharacter receiver, float rate, DamageTrigger trigger)
 {
     return(0);
 }
Ejemplo n.º 16
0
 void Start()
 {
     _animator     = GetComponent <Animator>();
     damageTrigger = transform.parent.GetComponentInChildren <DamageTrigger>();
 }
Ejemplo n.º 17
0
 void OnStarLargeHit(DamageTrigger trigger, GameObject victim) {
     ResetCharge();
 }
Ejemplo n.º 18
0
 //攻击 = 角色攻击力 * 卡牌百分比 * 我方buff属性
 public virtual int GiveDamage(BattleCharacter bc, float damageRate, DamageTrigger trigger)
 {
     return(bc.TakeDamage(this, Attack * damageRate * (1 + attackRate)));
 }
Ejemplo n.º 19
0
    public static int CalculateAndApply(BattleCharacter giver, BattleCharacter receiver, float rate, DamageTrigger trigger)
    {
        var trans        = receiver.damageTrans;
        var damage       = giver.GiveDamage(receiver, rate, trigger);
        var damageSource = GameObject.Instantiate(Initializer.Ins.damageSource, trans);

        damageSource.SetText(damage.ToString());
        return(damage);
    }
Ejemplo n.º 20
0
    //攻击 = 角色攻击力 * 属性修正 * 卡牌百分比 * 我方buff属性
    public override int GiveDamage(BattleCharacter bc, float damageRate, DamageTrigger trigger)
    {
        var factorRate = Initializer.Ins.factors[Force - 1].Force;

        return(bc.TakeDamage(this, Attack * damageRate * factorRate * (1 + attackRate)));
    }