public static void Create(Vector3 pos, Vector3 dir, float Damage, ulong CasterID, float debuffDuration, bool doubleSlow, bool dmgdebuff) { MagicArrow a = CreateEffect(pos, dir, dmgdebuff, debuffDuration); BoxCollider col = a.gameObject.AddComponent <BoxCollider>(); col.isTrigger = true; col.size = new Vector3(0.4f, 0.4f, 1.2f); a.Damage = Damage; a.casterID = CasterID; a.DebuffDuration = debuffDuration; a.GiveDoubleSlow = doubleSlow; a.GiveDmgDebuff = dmgdebuff; }
public static MagicArrow CreateEffect(Vector3 pos, Vector3 dir, bool debuff, float duration) { GameObject go = new GameObject("__MagicArrow__"); go.transform.position = pos; go.transform.rotation = Quaternion.LookRotation(dir); go.AddComponent <Rigidbody>().isKinematic = true; if (!ModSettings.IsDedicated) { go.AddComponent <MeshFilter>().mesh = Res.ResourceLoader.instance.LoadedMeshes[113]; if (material == null) { material = Core.CreateMaterial(new BuildingData() { EmissionColor = new Color(0, 1, 0.287f), Metalic = 1, Smoothness = 1 }); } go.AddComponent <MeshRenderer>().material = material; } MagicArrow a = go.AddComponent <MagicArrow>(); a.GiveDmgDebuff = debuff; a.DebuffDuration = duration; var light = go.AddComponent <Light>(); light.shadowStrength = 1; light.shadows = LightShadows.Hard; light.type = LightType.Point; light.range = 18; light.color = new Color(0.2f, 1f, 0.2f); light.intensity = 0.6f; Destroy(go, duration); return(a); }