Exemplo n.º 1
0
    public override void ProcessCommand(GameMaster gameMaster, string username, string parameters)
    {
        GameObject playerObj = gameMaster.GetPlayerObject(username);
        if (playerObj.activeSelf == false)
        {
            GetComponent<TwitchIRC>().MessageChannel("@" + username + ", can't cast spells when you're dead");
            return;
        }

        if (parameters.Length == 0)
        {
            Team otherTeam = gameMaster.GetOpposingTeam(playerObj.GetComponent<Player>().team);
            otherTeam.TakeDamage(damage);

            CreateZot(playerObj, otherTeam.gameObject);
        }
        else
        {
            GameObject target = gameMaster.GetPlayerObject(parameters);
            if (target != null)
            {
                CreateZot(playerObj, target);
                target.GetComponent<Player>().DealDamage(damage);
            }
        }
    }
Exemplo n.º 2
0
    public override void ProcessCommand(GameMaster gameMaster, string username, string parameters)
    {
        GameObject playerObj = gameMaster.GetPlayerObject(username);
        if (playerObj == null)
            return;

        playerObj.transform.position = Camera.main.ScreenToWorldPoint(new Vector3(Random.Range(0, Screen.width), Random.Range(0, Screen.height), 10));
    }
Exemplo n.º 3
0
    public override void ProcessCommand(GameMaster gameMaster, string username, string parameters)
	{
		GameObject playerObj = gameMaster.GetPlayerObject(username);
		if (playerObj == null)
			return;

        if (playerObj.activeSelf == false)
        {
            GetComponent<TwitchIRC>().MessageChannel(username + ", can't cast spells when you're dead");
            return;
        }

        Player playerComponent = playerObj.GetComponent<Player>();
		Team team = playerComponent.getTeam();

        // Check in-progress spells
        for (int i = 0; i < team.inProgressSpells.Count; ++i)
        {
            SpellProgress s = team.inProgressSpells[i];
			if (!s.IncrementSpellLine(username, parameters))
				continue;
			
            if (s.SpellComplete()) {
				s.spell.Cast(team, gameMaster.GetOpposingTeam(team));
                team.inProgressSpells.Remove(s);

                string castingGroup = s.casterNames[0];
                for (int j = 1; j < s.casterNames.Length; ++j)
                    castingGroup += ", " + s.casterNames[j];
                gameMaster.GetComponent<TwitchIRC>().MessageChannel(s.spell.spellName + " has been cast by " + castingGroup);
            }

            return;
        }

        // Start a new spell
        Spell[] spells = GetComponents<Spell>();
        foreach (Spell s in spells)
        {
            if (s.lines[0].words != parameters)
                continue;

			SpellProgress newSpellProgress = new SpellProgress(s, username);

			// in case of one-liners:
			if (newSpellProgress.SpellComplete()) {
				newSpellProgress.spell.Cast(team, gameMaster.GetOpposingTeam(team));
			} else {
            	team.inProgressSpells.Add(newSpellProgress);
			}

            return;
        }

        string insult = insults[Random.Range(0, insults.Length)].Replace("*", username);
        GetComponent<TwitchIRC>().MessageChannel(insult);
    }