LegitTeddyBears

BeamProjectile2

Jun 5th, 2017
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.80 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4.  
  5. public class BeamProjectile : BaseProjectile {
  6.  
  7.     GameObject m_launcher;
  8.     public float range;
  9.     GameObject m_target;
  10.     int m_damage;
  11.     float m_attackspeed;
  12.     float m_attacktimer;
  13.     // Update is called once per frame
  14.     void Update()
  15.     {
  16.         m_attacktimer += Time.deltaTime;
  17.  
  18.         if (m_launcher)
  19.         {
  20.             GetComponent<LineRenderer>().SetPosition(0, m_launcher.transform.position);
  21.             GetComponent<LineRenderer>().SetPosition(1, m_launcher.transform.position + (m_launcher.transform.forward * range));
  22.             RaycastHit hit;
  23.  
  24.             if (Physics.Raycast(m_launcher.transform.position, m_launcher.transform.forward, out hit, range))
  25.             {
  26.                 if (hit.transform.gameObject == m_target)
  27.                 {
  28.                     if (m_attacktimer >= m_attackspeed)
  29.                     {
  30.                         DamageData dmgData = new DamageData();
  31.                         dmgData.damage = m_damage;
  32.  
  33.                         MessageHandler msgHandler = m_target.GetComponent<MessageHandler>();
  34.  
  35.                         if (msgHandler)
  36.                         {
  37.                             msgHandler.GiveMessage(MessageType.DAMAGED, m_launcher, dmgData);
  38.                         }
  39.                         m_attacktimer = 0.0f;
  40.                     }
  41.                 }
  42.             }
  43.         }
  44.  
  45.     }
  46.     public override void FireProjectile(GameObject launcher, GameObject target, int damage, float attackSpeed)
  47.     {
  48.         if (launcher)
  49.         {
  50.             m_launcher = launcher;
  51.             m_target = target;
  52.             m_damage = damage;
  53.             m_attackspeed = attackSpeed;
  54.             m_attacktimer = 0.0f;
  55.         }
  56.     }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment