Exemplo n.º 1
0
    public float baseDamage;        // set in inspector

    public override void Actuate(IActivator activator, Dictionary <object, object> argumentDictionary = null)
    {
        CompleteBody completeBodyActivator = (CompleteBody)activator;

        Vector2 headPosition = completeBodyActivator.transform.TransformPoint(completeBodyActivator.headPosition);

        // PrefabReferences.prefabReferences.bullet.SetActive(false);  // done in inspector/editor now  // https://answers.unity.com/questions/636079/assign-exposed-vars-before-instantianting-prefab.html
        GameObject projectileGameObject = Instantiate(PrefabReferences.prefabReferences.bullet, headPosition, completeBodyActivator.transform.rotation);

        ISpirit spirit = projectileGameObject.GetComponent <Spirit>();

        spirit.SetAffinity(completeBodyActivator.GetAffinity());
        Projectile projectile = projectileGameObject.GetComponent <Projectile>();

        projectile.completeBodyActivator = completeBodyActivator;
        projectile.timeout         = projectileTimeout;
        projectile.initialVelocity = initialVelocity;
        projectile.baseDamage      = baseDamage;

        projectileGameObject.SetActive(true);
        projectileGameObject.GetComponent <Rigidbody2D>().velocity = projectileGameObject.transform.TransformDirection(new Vector2(0, projectile.initialVelocity));
        projectileGameObject.GetComponent <Collider2D>().enabled   = true;
    }
Exemplo n.º 2
0
 public void SetAffinity(Affinity affinity)
 {
     spirit.SetAffinity(affinity);
 }