Exemple #1
0
        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;
        }
Exemple #2
0
        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);
        }