From 4a8196b37347533c4affe45e2bdd1e776a39e02c Mon Sep 17 00:00:00 2001 From: asvitkine Date: Sat, 14 Jan 2023 00:53:12 -0500 Subject: [PATCH] Small code speed up: Avoid calling getFirstAbility() redundantly. This was showing up in simulation AI profiles. --- .../main/java/forge/game/ability/AbilityFactory.java | 3 ++- forge-game/src/main/java/forge/game/card/Card.java | 10 +++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/AbilityFactory.java b/forge-game/src/main/java/forge/game/ability/AbilityFactory.java index f7197835945..c5c278f2936 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityFactory.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityFactory.java @@ -185,7 +185,8 @@ public final class AbilityFactory { String cost = mapParams.get("Cost"); if (cost == null) { if (type == AbilityRecordType.Spell) { - if (state.getFirstAbility() != null && state.getFirstAbility().isSpell()) { + SpellAbility firstAbility = state.getFirstAbility(); + if (firstAbility != null && firstAbility.isSpell()) { // TODO might remove when Enchant Keyword is refactored System.err.println(state.getName() + " already has Spell using mana cost"); } diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index 26b48d535eb..5fcc4dcded6 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -2442,14 +2442,14 @@ public class Card extends GameEntity implements Comparable, IHasSVars { } // add As an additional cost to Permanent spells - if (state.getFirstAbility() != null && type.isPermanent()) { - SpellAbility first = state.getFirstAbility(); + SpellAbility first = state.getFirstAbility(); + if (first != null && type.isPermanent()) { if (first.isSpell()) { Cost cost = first.getPayCosts(); if (cost != null && !cost.isOnlyManaCost()) { String additionalDesc = ""; - if (state.getFirstAbility().hasParam("AdditionalDesc")) { - additionalDesc = state.getFirstAbility().getParam("AdditionalDesc"); + if (first.hasParam("AdditionalDesc")) { + additionalDesc = first.getParam("AdditionalDesc"); } sb.append(cost.toString().replace("\n", "")).append(" ").append(additionalDesc); sb.append(linebreak); @@ -3757,7 +3757,7 @@ public class Card extends GameEntity implements Comparable, IHasSVars { public final CardTypeView getOriginalType() { return getOriginalType(currentState); } - public final CardTypeView getOriginalType(CardState state) { + public final CardTypeView getOriginalType(CardState state) { return state.getType(); }