Exemplo n.º 1
0
 public void Execute(GameObject caster)
 {
     caster.GetCharacterStats().ApplyHealing(caster, 30);
     var particle = GameObject.Instantiate(Resources.Load("Particles/SparkleRising") as GameObject) as GameObject;
     caster.GetCharacterStats().StartCoroutine(Util.TurnOffParticlesInChildren(particle, 1.0f));
     particle.transform.SetParentAndCenter(caster.transform.root);
     particle.transform.localPosition += Vector3.up * 1.7f;
 }
Exemplo n.º 2
0
    public override void ApplyEffectsToTarget(GameObject caster, GameObject target, Vector3 location)
    {
        var damage = 5 + ((PlayerStats)caster.GetCharacterStats()).Intelligence.ModifiedValue * IntelligenceStat.spellDamagePerIntelligence;
        var stats = target.GetCharacterStats();
        if (stats)
        {
            target.GetCharacterStats().ApplyDamage(caster, new Damage(damage, caster, location, DamageType.Magical));

            target.AddComponent<FrostSlow>();
        }
    }
Exemplo n.º 3
0
 public override void ApplyEffectsToTarget(GameObject caster, GameObject target, Vector3 location)
 {
     var targetStats = target.GetCharacterStats();
     if (targetStats)
     {
         var casterStats = caster.GetCharacterStats() as PlayerStats;
         var spellDamage = casterStats.Intelligence.DamageModifier;
         var totalDamage = (int)(spellDamage * (1.33f));
         targetStats.ApplyDamage(caster, new Damage(totalDamage, caster, location, DamageType.Magical));
     }
 }
Exemplo n.º 4
0
    internal void ApplyRangedHit(GameObject attacker)
    {
        if (this.enabled)
        {
            var attackerStats = attacker.GetCharacterStats();
            var totalDamageMod = attackerStats.RangedDamageModifier;

            var damage = new Damage(totalDamageMod, attacker, attacker.transform.position, DamageType.Physical);

            characterStats.ApplyDamage(attacker, damage);
        }
    }
Exemplo n.º 5
0
 public void Execute(GameObject caster, NetworkViewID viewID)
 {
     Debug.Log("Instantiating the vessel");
     var vesselPrefab = Resources.Load("SpellEffects/DreamVessel") as GameObject;
     var go = GameObject.Instantiate(vesselPrefab) as GameObject;
     if (!go.networkView)
         go.AddComponent<NetworkView>();
     go.networkView.viewID = viewID;
     go.networkView.observed = go.transform;
     go.networkView.stateSynchronization = NetworkStateSynchronization.ReliableDeltaCompressed;
     go.AddComponent<DreamVesselObject>().team = caster.GetCharacterStats().TeamNumber;
     go.transform.position = caster.transform.position + caster.transform.forward * 2f;
 }
Exemplo n.º 6
0
    public override void InteractWith(GameObject player)
    {
        if (player.GetCharacterStats().TeamNumber != this.team) return;
        if (rider) return;

        if (Network.isServer)
        {
            TryEnterVessel(player.networkView.viewID);
        }
        else
        {
            networkView.RPC("TryEnterVessel", RPCMode.Server, player.networkView.viewID);
        }
    }
Exemplo n.º 7
0
 public override void ExecuteCommand(GameObject invokerObject, params string[] parameters)
 {
     invokerObject.GetCharacterStats().ApplyHealing(invokerObject, 999999);
     invokerObject.GetCharacterStats().Mana.CurrentValue = invokerObject.GetCharacterStats().Mana.MaxValue;
     invokerObject.GetCharacterStats().Stamina.CurrentValue = invokerObject.GetCharacterStats().Stamina.MaxValue;
 }
Exemplo n.º 8
0
 public override void ApplyEffectsToTarget(GameObject caster, GameObject target, Vector3 effectLocation)
 {
     var stats = target.GetCharacterStats();
     if (stats)
         stats.ApplyDamage(caster, new Damage(35, caster, effectLocation, DamageType.Magical));
 }
Exemplo n.º 9
0
    /// <summary>
    /// Notifies the player that the gameobject this is called on is their player.
    /// Calls the OnSetOwnership method in all attached components.
    /// Also attaches the camera to this gameObject.
    /// </summary>
    internal static void SetOwnership(GameObject gameObject)
    {
        Util.MyLocalPlayerObject = gameObject;
        Util.MyLocalPlayerTeam = gameObject.GetCharacterStats().TeamNumber;

        if (Network.isServer)
            AddServerOwnerComponents(gameObject);
        else
            AddClientOwnerComponents(gameObject);

        foreach (Transform child in gameObject.GetComponentsInChildren<Transform>())
        {
            child.SendMessage("OnSetOwnership", SendMessageOptions.DontRequireReceiver);
        }
        Camera.main.SendMessage("InitialSetTarget", gameObject.transform);
    }
Exemplo n.º 10
0
    public static void RewardPlayersInArea(Vector3 location, GameObject killer, KillReward reward)
    {
        if (Network.isClient) return;

        int teamNumber;
        if (killer.GetCharacterStats().teamNumber == 0)
            return;

        else teamNumber = killer.GetCharacterStats().TeamNumber;

        List<GameObject> playersToReward = new List<GameObject>();
        var teamPlayers = PlayerManager.Main.GetPlayersOnTeam(teamNumber).Select(x => x.gameObject);

        foreach (GameObject teamMate in teamPlayers)
        {
            if (Vector3.Distance(teamMate.transform.position, location) <= Util.MaxExperienceRange)
            {
                playersToReward.Add(teamMate);
            }
        }
        if (playersToReward.Count != 0)
        {
            reward /= playersToReward.Count;
            foreach (GameObject player in playersToReward)
            {
                (player.GetCharacterStats() as PlayerStats).RewardKill(reward);
            }
        }
    }