コード例 #1
0
    public override void Apply(Tapestry_Actor target)
    {
        bool execute = false;

        if (exposeTimeControls)
        {
            time -= Time.deltaTime * Tapestry_WorldClock.GlobalTimeFactor * target.personalTimeFactor;
            if (time <= 0)
            {
                execute = true;
            }
        }
        else
        {
            execute = true;
        }
        if (execute)
        {
            float amount = Random.Range(amountMin, amountMax);
            target.Heal(amount);
            if (exposeTimeControls)
            {
                time = pulse;
            }
        }
    }
コード例 #2
0
    public void Apply(Tapestry_Actor target)
    {
        //Temporary. Forgive me father, for I have sinned
        if (ReferenceEquals(payload, null))
        {
            payload = (Tapestry_EffectBuilder_Payload_Damage)ScriptableObject.CreateInstance("Tapestry_EffectBuilder_Payload_Damage");
        }
        payload.Apply(target);

        if (duration == Tapestry_EffectBuilder_Duration.Instant)
        {
            readyForRemoval = true;
        }
        else if (duration == Tapestry_EffectBuilder_Duration.Timed)
        {
            time += Time.deltaTime * Tapestry_WorldClock.GlobalTimeFactor * target.personalTimeFactor;
            if (time >= decayTime)
            {
                readyForRemoval = true;
            }
        }

        if (readyForRemoval)
        {
            payload.Cleanup(target);
        }
    }
 public override void Apply(Tapestry_Actor target)
 {
     if (target.GetType() == typeof(Tapestry_Player))
     {
         Tapestry_Player p = target as Tapestry_Player;
         p.jumpPower.AddBonus(amount, id, type, overwrite, overwriteByMag);
     }
 }
コード例 #4
0
    private void OnTriggerEnter(Collider other)
    {
        Tapestry_Actor actor = other.gameObject.GetComponentInParent <Tapestry_Actor>();

        if (!ReferenceEquals(actor, null))
        {
            actor.AddEffect(effectStanding);
        }
    }
 public override void Cleanup(Tapestry_Actor target)
 {
     if (removeWhenEffectEnds)
     {
         if (target.GetType() == typeof(Tapestry_Player))
         {
             Tapestry_Player p = target as Tapestry_Player;
             p.jumpPower.RemoveBonus(id, type);
         }
     }
 }
コード例 #6
0
 private void OnTriggerExit(Collider other)
 {
     if (removeEffectOnTriggerLeave)
     {
         if (effect.duration != Tapestry_EffectBuilder_Duration.Instant)
         {
             Tapestry_Actor a = other.GetComponentInParent <Tapestry_Actor>();
             if (a != null)
             {
                 a.RemoveEffect(effect);
             }
         }
     }
 }
    public override void Apply(Tapestry_Actor target)
    {
        Rigidbody rb = target.GetComponent <Rigidbody>();

        if (rb != null)
        {
            if (target.GetType() == typeof(Tapestry_Player))
            {
                Tapestry_Player p = target as Tapestry_Player;
                p.RestrictControls = true;
            }
            rb.velocity = dir * strength;
        }
    }
コード例 #8
0
    public override void Apply(Tapestry_Actor target)
    {
        if (localPosOffset)
        {
            target.transform.position = target.transform.position + newPos;
        }
        else
        {
            target.transform.position = newPos;
        }

        if (changeRot)
        {
            target.transform.rotation = Quaternion.Euler(0, newRot, 0);
        }
    }
コード例 #9
0
    public override void OnInspectorGUI()
    {
        Tapestry_Actor t = target as Tapestry_Actor;

        t.isInteractable = false;

        GUILayout.Label("Actor is not a usable component!\nPlease use Entity, Prop, or a component that inherits from one of them.");
        GUILayout.Label("Replace With...");
        GUILayout.BeginHorizontal();
        if (GUILayout.Button("Entity"))
        {
            t.gameObject.AddComponent <Tapestry_Entity>();
            DestroyImmediate(t);
        }
        if (GUILayout.Button("Prop"))
        {
            t.gameObject.AddComponent <Tapestry_Prop>();
            DestroyImmediate(t);
        }
        GUILayout.EndHorizontal();
    }
コード例 #10
0
    private void OnTriggerEnter(Collider other)
    {
        if (ReferenceEquals(keywords, null))
        {
            keywords = (Tapestry_KeywordRegistry)ScriptableObject.CreateInstance("Tapestry_KeywordRegistry");
        }

        Tapestry_Actor a = other.GetComponentInParent <Tapestry_Actor>();

        if (keywords.Count == 0)
        {
            if (a != null)
            {
                a.AddEffect(effect.Clone());
            }
        }
        else if (applyByKeyword)
        {
            if (a != null && !ReferenceEquals(a.keywords, null))
            {
                if (a.keywords.ContainsOne(keywords))
                {
                    a.AddEffect(effect.Clone());
                }
            }
        }
        else
        {
            if (a != null && !ReferenceEquals(a.keywords, null))
            {
                if (!a.keywords.ContainsAll(keywords))
                {
                    a.AddEffect(effect.Clone());
                }
            }
        }
    }
コード例 #11
0
 public override void Apply(Tapestry_Actor target)
 {
     for (int i = target.effects.Count - 1; i >= 0; i--)
     {
         Tapestry_Effect e = target.effects[i];
         if (e.payload.GetType() != typeof(Tapestry_EffectBuilder_Payload_Purge))
         {
             if (needsOneKeyword)
             {
                 if (e.keywords.ContainsOne(keywords))
                 {
                     e.readyForRemoval = true;
                 }
             }
             else
             {
                 if (e.keywords.ContainsAll(keywords))
                 {
                     e.readyForRemoval = true;
                 }
             }
         }
     }
 }
コード例 #12
0
 public virtual void Cleanup(Tapestry_Actor target)
 {
 }
コード例 #13
0
 public virtual void Apply(Tapestry_Actor target)
 {
     throw new System.NotImplementedException();
 }
 public override void Apply(Tapestry_Actor target)
 {
     base.Apply(target);
 }
コード例 #15
0
 public virtual void Use(Tapestry_Actor target)
 {
 }