// Update is called once per frame void Update() { if (Input.GetButton("TEST_ADD_PLAYER")) { AttemptSpell("Accipiter Chalybs", CHAOS_CONTROL, 0, 0); // AddPlayer(nameList[Random.Range(0, 5)]); // if (Random.RandomRange(0, 10) == 0) SetColor(nameList[Random.Range(0, 5)], new Color(0, 0.5f, 1)); } timer -= Time.deltaTime; if (timer < 0) { print("Timer magic"); foreach (string name in playerNames) { DiscordPlayerData data = getPlayer(name); if (data == null) { return; } data.mana += 100; UpdateName(name); } timer = manaInfusionTime; } if (chaos_control_active > 0) { chaos_control_active -= Time.deltaTime; } if (rapid_fire_active > 0) { rapid_fire_active -= Time.deltaTime; } }
public void AddPlayer(string name) { string attemptName = name; int tryCount = 0; while (getPlayer(attemptName) != null) { attemptName = name + "(" + tryCount++ + ")"; } name = attemptName; DiscordPlayerData playerData = new DiscordPlayerData(); playerData.name = name; playerData.color = new Color(1, 1, 0); playerData.mana = 0; playerData.avatar = Instantiate(discordPlayerPrefab, this.transform.position + spawnOffset, Quaternion.identity); Text namebadge = Instantiate(namePrefab); namebadge.rectTransform.SetParent(uiContainer); namebadge.rectTransform.anchoredPosition = new Vector2(-325 + nameWidth * (nameCount / namePerPage), 261 - 25 * (nameCount++ % namePerPage)); playerData.namebadge = namebadge; playerNames.Add(name); discordPlayers[name] = playerData; UpdateName(name); }
public void AttemptSpell(string name, int spell, int arg1, int arg2) { DiscordPlayerData data = getPlayer(name); if (data == null) { return; } print(spell); switch (spell) { case CHAOS_CONTROL: if (data.mana < spellCost[CHAOS_CONTROL]) { return; } data.mana -= spellCost[CHAOS_CONTROL]; chaos_control_active += chaosControlDuration; UpdateName(name); break; case METEOR: if (data.mana < spellCost[METEOR]) { return; } data.mana -= spellCost[METEOR]; Instantiate(MeteorPrefab, new Vector3(arg1 * 10 - 50, 50, arg2 * 10 - 50), Quaternion.Euler(90, 0, 0)); UpdateName(name); break; case FLING: if (data.mana < spellCost[FLING]) { return; } data.mana -= spellCost[FLING]; this.GetComponent <Rigidbody>().AddForce(new Vector3(0, 25, 0), ForceMode.Impulse); UpdateName(name); break; case RAPID_FIRE: if (data.mana < spellCost[RAPID_FIRE]) { return; } data.mana -= spellCost[RAPID_FIRE]; rapid_fire_active += rapidFireDuration; UpdateName(name); break; } }
public void UpdateName(string name) { DiscordPlayerData data = getPlayer(name); if (data == null) { return; } data.namebadge.text = name + " | " + data.mana; data.namebadge.color = data.color; }
public void SetColor(string name, Color c) { DiscordPlayerData data = getPlayer(name); if (data == null) { return; } data.color = c; data.avatar.GetComponent <Recolour>().GenerateMaterial(c); UpdateName(name); }