private void Awake() { owner = this.transform.parent.parent.Find("CharacterIcon"). GetComponent <ActivePlayer>().player.GetComponent <UnityCharacter>(); this.GetComponent <Button>().onClick.AddListener(Regive); descriptor = transform.parent.GetComponent <ItemDescriptionScript>(); }
public void StartBattle(UnityCharacter enemy, UnityCharacter player, Collider2D collision) { if (FightStarted) { return; } this.FightStarted = true; GameObject.Find("Saving").GetComponent <SaveManager>().Save(); message.Show("Время битвы!"); this.satellites = player.satellites; satellites.Add(player); foreach (var satellite in this.satellites) { satellite.Character.DeathEvent += OnDeath; } this.enemies = enemy.satellites; enemies.Add(enemy); foreach (var satellite in this.enemies) { satellite.Character.DeathEvent += OnDeath; if (satellite.gameObject.name != enemy.gameObject.name) { satellite.transform.Find("FightZone").GetComponent <Collider2D>().enabled = false; } } this.collision = collision; this.turn = 0; Battle(); }
void Start() { activeCharacter = this.transform.parent.parent.parent.Find("CharacterIcon"). GetComponent <ActivePlayer>().player.GetComponent <UnityCharacter>(); message = this.transform.parent.parent.parent.Find("MessageBox").GetComponent <ChangeMessage>(); this.GetComponent <Button>().onClick.AddListener(Cast); }
private void Cast() { owner = this.transform.parent.parent.Find("CharacterIcon"). GetComponent <ActivePlayer>().player.GetComponent <UnityCharacter>(); if (descriptor.isAboutSpell) { owner.isSpellSelected = true; owner.selectedSpellIndex = (uint)descriptor.slotNumber; spellSlot.GetComponent <Image>().color = Color.red; owner.selectedSpell = (owner.Character as Magician).SpellsList.Spells[(int)descriptor.slotNumber]; this.transform.parent.parent.Find("Buttons").Find("SpellbookButton").Find("Slot").GetComponent <Image>().sprite = this.transform.parent.parent.Find("SpellBook").Find("Slot (" + descriptor.slotNumber + ")").GetComponent <Image>().sprite; } else { owner.selectedArtifact = owner.Character.Inventory.Artifacts[(int)descriptor.slotNumber]; owner.isArifactSelected = true; itemSlot.GetComponent <Image>().color = Color.red; owner.selectedArtifactIndex = (uint)descriptor.slotNumber; this.transform.parent.parent.Find("Buttons").Find("InventoryButton").Find("Slot").GetComponent <Image>().sprite = this.transform.parent.parent.Find("Inventory").Find("Slot (" + descriptor.slotNumber + ")").GetComponent <Image>().sprite; } descriptor.Hide(); }
void OnMouseDown() { var activePlayerScript = GameObject.Find("CharacterIcon").GetComponent <ActivePlayer>(); active = activePlayerScript.player.GetComponent <UnityCharacter>(); if (active.isRegiving) { if (this.gameObject.tag != "Player") { message.Show("Передавать вещи можно только своим"); } else { active.Character.Inventory.Artifacts.Remove(active.isToBeRegiven); thisReceiver.Inventory.Artifacts.Add(active.isToBeRegiven); } active.isToBeRegiven = null; active.isRegiving = false; return; } if (this.gameObject.tag == "Player" && !active.isSpellSelected && !active.isArifactSelected) { if (active.isRegiving) { } else { activePlayerScript.ChangePlayer(this.gameObject); } return; } if (active.isArifactSelected) { var artifact = active.Character.Inventory.Artifacts[(int)active.selectedArtifactIndex]; if (active.isArifactSelected && artifact.IsFightOnly && !fightSystem.FightStarted) { message.Show("Не к чему бороться в мирное время"); return; } if (active.isArifactSelected && artifact.Used) { message.Show("Нельзя использовать один артефакт за ход дважды"); return; } if (artifact.IsFightOnly) { artifact.Used = true; } var recepient = this.GetComponent <UnityCharacter>().Character; if (this.tag == "Enemy" || this.tag == "Player") { bool isForOneTime = artifact.IsRechargeable; if (artifact.HasPower) { //active.Character.Inventory.ActivateArtifact((int)active.selectedArtifactIndex, thisReceiver, 3); System.Random random = new System.Random(); try { Cast(random.Next(0, Math.Min((int)artifact.Power, (int)thisReceiver.MaxHp)) + 1); } catch { } } else { try { Cast(1); } catch { } } // if (isForOneTime) { active.isArifactSelected = false; active.selectedArtifactIndex = 0; var artifactButton = GameObject.Find("Canvas").transform.Find("Buttons").Find("InventoryButton").Find("Slot").GetComponent <Image>(); artifactButton.sprite = null; artifactButton.color = Color.white; } } else { if (this.gameObject.name == "granny") { if (artifact.Name == "Цветочки") { if (questSystem.GetByTag("GrannyQuest") != null && !questSystem.GetByTag("GrannyQuest").IsFinished) { active.Character.Inventory.ExchangeArtifact(recepient, (int)active.selectedArtifactIndex); dialogSystem.Show("03VillageGrannyCompleting.txt"); this.transform.Find("QuestReceiver").GetComponent <QuestReceiver>().FinishQuest(); } else { dialogSystem.Show("03VillageGrannyBase.txt"); return; } } else { dialogSystem.Show("03VillageGrannyDontWant.txt"); return; } } else if (this.gameObject.name == "Well" && questSystem.GetByTag("SaintWater") != null && !questSystem.GetByTag("SaintWater").IsFinished) { if (artifact.GetType() == typeof(CatFishScripts.Artifacts.LivingWaterBottle)) { active.Character.Inventory.ExchangeArtifact(recepient, (int)active.selectedArtifactIndex); message.Show("Вы освятили колодец"); this.transform.Find("QuestReceiver").GetComponent <QuestReceiver>().FinishQuest(); } } else if (this.gameObject.name == "oldboy") { if (artifact.Name == "Грибы") { if (questSystem.GetByTag("Mushrooms") != null && !questSystem.GetByTag("Mushrooms").IsFinished) { int i = 0; while (i < active.Character.Inventory.Artifacts.Count) { if (active.Character.Inventory.Artifacts[i].Name == "Грибы") { active.Character.Inventory.ExchangeArtifact(recepient, i); i--; } i++; } if (recepient.Inventory.Artifacts.Count == 8) { dialogSystem.Show("04OldBoyFinish.txt"); this.transform.Find("QuestReceiver").GetComponent <QuestReceiver>().FinishQuest(); } } else { dialogSystem.Show("04OldBoyCompleting.txt"); return; } } else { dialogSystem.Show("04OldBoyCompleting.txt"); return; } } else if (this.gameObject.name == "elf") { if (artifact.GetType() == typeof(CatFishScripts.Artifacts.BasiliskEye)) { if (questSystem.GetByTag("ElfQuest") != null && !questSystem.GetByTag("ElfQuest").IsFinished) { active.Character.Inventory.ExchangeArtifact(recepient, (int)active.selectedArtifactIndex); } } else { return; } } active.isArifactSelected = false; active.selectedArtifactIndex = 0; var artifactButton = GameObject.Find("Canvas").transform.Find("Buttons").Find("InventoryButton").Find("Slot").GetComponent <Image>(); artifactButton.sprite = null; artifactButton.color = Color.white; } } if (active.isSpellSelected) { var spell = (active.Character as Magician).SpellsList.Spells[(int)active.selectedSpellIndex]; try { CastSpell(spell.Power); } catch (Exception ex) { message.Show(ex.Message); } active.isSpellSelected = false; active.selectedSpellIndex = 0; var spellButton = GameObject.Find("Canvas").transform.transform.Find("Buttons").Find("SpellbookButton").Find("Slot").GetComponent <Image>(); spellButton.sprite = null; spellButton.color = Color.white; } }