public override void Edit(Monster monster)
		{
			InputRanks d = new InputRanks();
			d.SetRanks(slotCost);
			if (d.ShowDialog() == DialogResult.OK)
			{
				AbstractAbility p = (AbstractAbility)this.GetParent();
				slotCost = d.NumberOfRanks();
				chargeTime = 20 + 5 * d.NumberOfRanks();
				powerMult = 1.5 + 0.5 * (d.NumberOfRanks() - 1);
				name = "Countdown - " + d.NumberOfRanks().ToString() + " ranks";
				if (p.TargetType == TargetType.All || p.TargetType == TargetType.Group)
				{
					chargeTime += 10;
				}
			}
		}
		public override void Edit(Monster monster)
		{
			if (monster.Rank.IsMinibossOrBoss())
			{
				InputRanks d = new InputRanks();
				d.SetRanks(ranks);
				if (d.ShowDialog() == DialogResult.OK)
				{
					ranks = d.NumberOfRanks();
					slotCost = d.NumberOfRanks();
					name = "Longer Status - Status Durations: +" + d.NumberOfRanks() + ", apply manually.";
				}
			}
			else
			{
				Complain(6);
			}
		}
		public override bool Prepare(Monster m)
		{
			if (this.GetParent() == m.BasicAttack)
			{
				Complain(4);
				return false;
			}
			if (base.Prepare(m))
			{
				InputRanks d = new InputRanks();
				if (d.ShowDialog() == DialogResult.OK)
				{
					AbstractAbility p = (AbstractAbility)this.GetParent();
					slotCost = d.NumberOfRanks();
					chargeTime = 20 + 5 * d.NumberOfRanks();
					powerMult = 1.5 + 0.5 * (d.NumberOfRanks() - 1);
					name += " - " + d.NumberOfRanks().ToString() + " ranks";
					if (p.TargetType == TargetType.All || p.TargetType == TargetType.Group)
					{
						chargeTime += 10;
					}
					return true;
				}
				else
				{
					return false;
				}
			}
			else
			{
				return false;
			}
		}
		public override void Edit(Monster monster)
		{
			if (monster.Rank.IsMinibossOrBoss())
			{
				//figure out how many ranks are being taken
				InputRanks d = new InputRanks();
				d.SetRanks(ranks);
				if (d.ShowDialog() == DialogResult.OK)
				{
					slotCost = d.NumberOfRanks();
					cosMod = 5 * d.NumberOfRanks();
					ranks = d.NumberOfRanks();
					name = "High CoS: +" + cosMod.ToString() + "%";
				}
			}
			else
			{
				Complain(6);
			}
		}
		public override bool Prepare(Monster m)
		{
			if (this.GetParent() == m.BasicAttack)
			{
				Complain(4);
				return false;
			}
			if (base.Prepare(m))
			{
				if (m.Rank.IsMinibossOrBoss())
				{
					//figure out how many ranks are being taken
					InputRanks d = new InputRanks();
					if (d.ShowDialog() == DialogResult.OK)
					{
						ranks = d.NumberOfRanks();
						slotCost = d.NumberOfRanks();
						name = "Longer Status - Status Durations: +" + d.NumberOfRanks() + ", apply manually.";
						return true;
					}
					else
					{
						return false;
					}
				}
				else
				{
					slotCost = 1;
					name = "Longer Status - Status Durations +1, apply manually.";
					return true;
				}
			}
			else
			{
				return false;
			}
		}
		public override bool Prepare(Monster m)
		{
			if (base.Prepare(m))
			{
				if (m.Rank.IsMinibossOrBoss())
				{
					//figure out how many ranks are being taken
					InputRanks d = new InputRanks();
					if (d.ShowDialog() == DialogResult.OK)
					{
						slotCost = d.NumberOfRanks();
						cosMod = 5 * d.NumberOfRanks();
						ranks = d.NumberOfRanks();
						name = "High CoS: +" + cosMod.ToString() + "%";
						return true;
					}
					else
					{
						return false;
					}
				}
				else
				{
					slotCost = 1;
					cosMod = 5;
					name = "+5 CoS";
					return true;
				}
			}
			else
			{
				return false;
			}
		}
		public override void Edit(Monster monster)
		{
			int slotSurcharge;
			if (monster.Tier == 1)
			{
				slotSurcharge = 2;
			}
			else
			{
				slotSurcharge = 0;
			}
			InputRanks d = new InputRanks();
			d.SlotSurcharge = slotSurcharge;
			d.SetRanks(ranks);
			if (d.ShowDialog() == DialogResult.OK)
			{
				ranks = d.NumberOfRanks();
				slotCost = ranks + slotSurcharge;
				critRange = 5 * ranks;
				name = "Critical : " + ranks.ToString() + " Ranks";
			}
		}
		public override bool Prepare(Monster m)
		{
			if (base.Prepare(m))
			{
				AbstractAbility abs = (AbstractAbility)GetParent();
				if (abs.HasKeyword(Keyword.Weapon))
				{
					int slotSurcharge;
					if (m.Tier == 1)
					{
						slotSurcharge = 2;
					}
					else
					{
						slotSurcharge = 0;
					}
					InputRanks d = new InputRanks();
					d.SlotSurcharge = slotSurcharge;
					if (d.ShowDialog() == DialogResult.OK)
					{
						ranks = d.NumberOfRanks();
						slotCost = ranks + slotSurcharge;
						critRange = 5 * ranks;
						name = "Critical : " + ranks.ToString() + " Ranks";
						return true;
					}
					else
					{
						return false;
					}
				}
				else
				{
					Complain(7);
					return false;
				}
			}
			else
			{
				return false;
			}
		}
		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);
			}
		}
Example #10
0
		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;
			}
		}