public override void Edit(Monster monster)
		{
			InputAdditionalCost dialog = new InputAdditionalCost(5, 20);
			if (dialog.ShowDialog() == DialogResult.OK)
			{
				if (dialog.Result() == AdditionalCost.Delay)
				{
					//delay cost chosen
					delayMod = 5;
					mpScale = 0;
					name = "Drain Health (Cost: +5D)";
				}
				else
				{
					//MP Cost chosen
					mpScale = 20;
					delayMod = 0;
					name = "Drain Health (Cost: +20 MP/Tier)";
				}
			}
		}
		public override bool Prepare(Monster m)
		{
			if (this.GetParent() == m.BasicAttack)
			{
				Complain(4);
				return false;
			}
			if (base.Prepare(m))
			{
				InputAdditionalCost dialog = new InputAdditionalCost(5, 20);
				if (dialog.ShowDialog() == DialogResult.OK)
				{
					if (dialog.Result() == AdditionalCost.Delay)
					{
						//delay cost chosen
						delayMod = 5;
						name += " (Cost: +5D)";
					}
					else
					{
						//MP Cost chosen
						mpScale = 20;
						name += " (Cost: +20 MP/Tier)";
					}
					return true;
				}
				else
				{
					return false;
				}
			}
			return false;
		}
		public override bool Prepare(Monster m)
		{
			if (base.Prepare(m))
			{
				int tmpSlotCost = 0;
				if (modifiedAbility.TargetType == TargetType.Single)
				{
					tmpSlotCost = 3;
				}
				else
				{
					tmpSlotCost = 7;
				}

				if (m.Tier < 4)
				{
					slotCost = tmpSlotCost + 2;
				}
				else
				{
					slotCost = tmpSlotCost;
				}
				if (this.GetParent() != m.BasicAttack)
				{
					InputAdditionalCost dialog = new InputAdditionalCost(5, 20);
					if (dialog.ShowDialog() == DialogResult.OK)
					{
						if (dialog.Result() == AdditionalCost.Delay)
						{
							//delay cost chosen
							delayMod = 5;
							name += " (Cost: +5D)";
						}
						else
						{
							//MP Cost chosen
							mpScale = 20;
							name += " (Cost: +20 MP/Tier)";
						}
						return true;
					}
					else
					{
						return false;
					}
				}
				else
				{
					delayMod = 5;
					name += " (Cost: +5D)";
					return true;
				}
			}
			else
			{
				return false;
			}
		}
		public override bool Prepare(Monster m)
		{
			if (this.GetParent() == m.BasicAttack)
			{
				Complain(4);
				return false;
			}
			if (base.Prepare(m))
			{
				if (m.Tier == 1)
				{
					slotCost += 2;
				}
				InputTectonicType dialog = new InputTectonicType();
				if (dialog.ShowDialog() == DialogResult.OK)
				{
					if (dialog.NonElemental())
					{
						name += " - Strips Element";
						slotCost += 1;
						stripsElement = true;
						InputAdditionalCost dialog2 = new InputAdditionalCost(5, 20);
						if (dialog2.ShowDialog() == DialogResult.OK)
						{
							if (dialog2.Result() == AdditionalCost.Delay)
							{
								name += " (Cost: +5D)";
								delayMod = 5;
							}
							else
							{
								name += " (Cost: +20 MP/Tier)";
								mpScale = 20;
							}
						}
					}
					if (dialog.Result() == TectonicResult.PowerMod)
					{
						name += " - Increased Power";
						powerMod = 3;
					}
					else
					{
						name += " - Delays struck targets by 10D";
					}
					return true;
				}
				else
				{
					return false;
				}
			}
			else
			{
				return false;
			}
		}
		public override void Edit(Monster monster)
		{
			if (monster.Tier == 1)
			{
				slotCost = 3;
			}
			else
			{
				slotCost = 1;
			}
			InputTectonicType dialog = new InputTectonicType();
			if (dialog.ShowDialog() == DialogResult.OK)
			{
				name = "Tectonic";
				if (dialog.NonElemental())
				{
					name += " - Strips Element";
					slotCost += 1;
					stripsElement = true;
					InputAdditionalCost dialog2 = new InputAdditionalCost(5, 20);
					if (dialog2.ShowDialog() == DialogResult.OK)
					{
						if (dialog2.Result() == AdditionalCost.Delay)
						{
							name += " (Cost: +5D)";
							delayMod = 5;
							mpScale = 0;
						}
						else
						{
							name += " (Cost: +20 MP/Tier)";
							delayMod = 0;
							mpScale = 20;
						}
					}
				}
				else
				{
					delayMod = 0;
					mpScale = 0;
					stripsElement = false;
				}
				if (dialog.Result() == TectonicResult.PowerMod)
				{
					name += " - Increased Power";
					powerMod = 3;
				}
				else
				{
					name += " - Delays struck targets by 10D";
					powerMod = 0;
				}
			}
		}
		public override void Edit(Monster monster)
		{
			if (monster.Rank.IsMinibossOrBoss())
			{
				//figure out how many ranks are being taken
				InputRanks d = new InputRanks();
				InputAdditionalCost d1 = new InputAdditionalCost(5, 20);
				d.SetRanks(ranks);
				if (d.ShowDialog() == DialogResult.OK && d1.ShowDialog() == DialogResult.OK)
				{
					slotCost = d.NumberOfRanks();
					powerMod = 2 * d.NumberOfRanks();
					ranks = d.NumberOfRanks();
					string additionalCostString;
					if (d1.Result() == AdditionalCost.Delay)
					{
						additionalCostString = " (Cost: +5D)";
						delayMod = 5;
						mpScale = 0;
					}
					else
					{
						additionalCostString = " (Cost: +20 MP/Tier)";
						mpScale = 20;
						delayMod = 0;
					}
					name = "Power Strike: " + ranks.ToString() + " Ranks" + additionalCostString;
				}
			}
			else
			{
				Complain(6);
			}
		}
		public override bool Prepare(Monster m)
		{
			bool allowMP = true;
			if (this.GetParent() == m.BasicAttack)
			{
				allowMP = false;
			}
			if (base.Prepare(m))
			{
				if (!allowMP)
				{
					delayMod = 5;
					if (m.Rank.IsMinibossOrBoss())
					{
						InputRanks d = new InputRanks();
						if (d.ShowDialog() == DialogResult.OK)
						{
							slotCost = d.NumberOfRanks();
							name = "Power Strike: " + d.NumberOfRanks() + " Ranks (Cost: +5D)";
							powerMod = 2 * d.NumberOfRanks();
							ranks = d.NumberOfRanks();
							return true;
						}
						else
						{
							return false;
						}
					} 
					else
					{
						slotCost = 1;
						ranks = 1;
						name = "Power Strike (Cost: +5D)";
						powerMod = 2;
						return true;
					}
				}
				InputAdditionalCost d1 = new InputAdditionalCost(5, 20);
				if (d1.ShowDialog() == DialogResult.OK)
				{
					string additionalCostString;
					if (d1.Result() == AdditionalCost.Delay)
					{
						delayMod = 5;
						additionalCostString = " (Cost: +5D)";
					}
					else
					{
						mpScale = 20;
						additionalCostString = " (Cost: +20 MP/Tier)";
					}

					if (m.Rank.IsMinibossOrBoss())
					{
						//figure out how many ranks are being taken
						InputRanks d = new InputRanks();
						d.SlotsPerRank = 1;
						
						if (d.ShowDialog() == DialogResult.OK)
						{
							ranks = d.NumberOfRanks();
							slotCost = d.NumberOfRanks();
							name = "Power Strike: " + d.NumberOfRanks() + " Ranks" + additionalCostString;
							powerMod = 2 * d.NumberOfRanks();
							return true;
						}
						else
						{
							return false;
						}
					}
					else
					{
						slotCost = 1;
						ranks = 1;
						name = "Power Strike" + additionalCostString;
						powerMod = 2;
						return true;
					}
				}
				else
				{
					return false; 
				}
			}
			else
			{
				return false;
			}
		}
		public override void Edit(Monster monster)
		{
			string additionalCostString;
			InputAdditionalCost dialog = new InputAdditionalCost(5, 20);
			if (dialog.ShowDialog() == DialogResult.OK)
			{
				if (dialog.Result() == AdditionalCost.Delay)
				{
					//delay cost chosen
					delayMod = 5;
					mpScale = 0;
					additionalCostString = " (Cost: +5D)";
				}
				else
				{
					//MP Cost chosen
					mpScale = 20;
					delayMod = 0;
					additionalCostString = " (Cost: +20 MP/Tier)";
				}
				name = "Row Cutter" + additionalCostString;
			}
		}
		public override void Edit(Monster monster)
		{
			string additionalCostString;
			InputAdditionalCost dialog = new InputAdditionalCost(10, 40);
			if (dialog.ShowDialog() == DialogResult.OK)
			{
				if (dialog.Result() == AdditionalCost.Delay)
				{
					//delay cost chosen
					delayMod = 10;
					mpScale = 0;
					additionalCostString = " (Cost: +10D)";
				}
				else
				{
					//MP Cost chosen
					mpScale = 40;
					delayMod = 0;
					additionalCostString = " (Cost: +40 MP/Tier)";
				}
				name = "Group Attack" + additionalCostString;
			}
		}
Example #10
0
		public override bool Prepare(Monster m)
		{
			if (this.GetParent() == m.BasicAttack)
			{
				Complain(4);
				return false;
			}
			if (base.Prepare(m))
			{
				InputAdditionalCost dialog = new InputAdditionalCost(10, 40);
				if (dialog.ShowDialog() == DialogResult.OK)
				{
					string additionalCostString;
					if (dialog.Result() == AdditionalCost.Delay)
					{
						//delay cost chosen
						delayMod = 10;
						additionalCostString = " (Cost: +10D)";
					}
					else
					{
						//MP Cost chosen
						mpScale = 40;
						additionalCostString = " (Cost: +40 MP/Tier)";
					}
					name += additionalCostString;
					return true;
				}
				else
				{
					return false;
				}
			}
			return false;
		}