Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37893895
en ru br
Репозитории ALT
S:14.7-alt1.svn9619
5.1: 13.6-alt1.svn7713
4.1: 12.4-alt1.svn6075
4.0: 11.0-alt1.svn3836
www.altlinux.org/Changes

Группа :: Игры/Приключения
Пакет: KoLmafia

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: KoLmafia-13.6-alt-llama-gong.patch
Скачать


 src/data/defaults.txt                              |    1 +
 src/net/sourceforge/kolmafia/KoLCharacter.java     |   15 +++++++++++++++
 .../sourceforge/kolmafia/request/FightRequest.java |   15 +++++++++++++++
 .../kolmafia/request/UseItemRequest.java           |   10 ++++++++++
 .../kolmafia/session/ChoiceManager.java            |   18 ++++++++++++++++++
 5 files changed, 59 insertions(+), 0 deletions(-)
diff --git a/src/data/defaults.txt b/src/data/defaults.txt
index b5a0bc8..0f52de3 100644
--- a/src/data/defaults.txt
+++ b/src/data/defaults.txt
@@ -358,6 +358,7 @@ user	lastVioletFogMap	0
 user	lastZapperWand	0
 user	libramSummons	0
 user	libraryCardUsed	false
+user	llamaSeen	true
 user	louvreDesiredGoal	7
 user	louvreGoal	0
 user	louvreLayout
diff --git a/src/net/sourceforge/kolmafia/KoLCharacter.java b/src/net/sourceforge/kolmafia/KoLCharacter.java
index 8c8338c..a9d66e1 100644
--- a/src/net/sourceforge/kolmafia/KoLCharacter.java
+++ b/src/net/sourceforge/kolmafia/KoLCharacter.java
@@ -2316,6 +2316,21 @@ public abstract class KoLCharacter
 			KoLCharacter.addAvailableSkill( "Moxious Maneuver" );
 		}
 
+		// Bird-form and mole-form skills are available for all classes
+		// Bird form regular
+		KoLCharacter.addAvailableSkill( "Vicious Talon Slash" );
+		KoLCharacter.addAvailableSkill( "All-You-Can-Beat Wing Buffet" );
+		KoLCharacter.addAvailableSkill( "Get a You-Eye View" );
+		// Mole form regular
+		KoLCharacter.addAvailableSkill( "Tunnel Upwards" );
+		KoLCharacter.addAvailableSkill( "Tunnel Downwards" );
+		// Bird form elemental bugs skills
+		KoLCharacter.addAvailableSkill( "Rise From Your Ashes" );
+		KoLCharacter.addAvailableSkill( "Antarctic Flap" );
+		KoLCharacter.addAvailableSkill( "Feast on Carrion" );
+		KoLCharacter.addAvailableSkill( "The Statue Treatment" );
+		KoLCharacter.addAvailableSkill( "Give Your Opponent "The Bird"" );
+
 		// Check all available skills to see if they
 		// qualify to be added as combat or usables.
 
diff --git a/src/net/sourceforge/kolmafia/request/FightRequest.java b/src/net/sourceforge/kolmafia/request/FightRequest.java
index 105bcfb..e2cd050 100644
--- a/src/net/sourceforge/kolmafia/request/FightRequest.java
+++ b/src/net/sourceforge/kolmafia/request/FightRequest.java
@@ -193,6 +193,7 @@ public class FightRequest
 	private static boolean castNoodles = false;
 	private static boolean castCleesh = false;
 	private static boolean jiggledChefstaff = false;
+	private static boolean dugTunnel = false;
 	private static boolean summonedGhost = false;
 	private static int currentRound = 0;
 	private static int levelModifier = 0;
@@ -894,6 +895,19 @@ public class FightRequest
 			FightRequest.castCleesh = true;
 		}
 
+		// only one tunnel action per fight
+		if ( skillName.equals( "Tunnel Upwards") ||
+				skillName.equals("Tunnel Downwards") )
+		{
+			if (FightRequest.dugTunnel)
+			{
+				FightRequest.action1 = "attack";
+				this.addFormField( "action", FightRequest.action1 );
+				return;
+			}
+			FightRequest.dugTunnel = true;
+		}
+
 		if ( FightRequest.isInvalidAttack( FightRequest.action1 ) )
 		{
 			FightRequest.action1 = "abort";
@@ -2633,6 +2647,7 @@ public class FightRequest
 		FightRequest.castNoodles = false;
 		FightRequest.castCleesh = false;
 		FightRequest.jiggledChefstaff = false;
+		FightRequest.dugTunnel = false;
 		FightRequest.summonedGhost = false;
 		FightRequest.desiredScroll = null;
 
diff --git a/src/net/sourceforge/kolmafia/request/UseItemRequest.java b/src/net/sourceforge/kolmafia/request/UseItemRequest.java
index 3f1b7d6..aa206ad 100644
--- a/src/net/sourceforge/kolmafia/request/UseItemRequest.java
+++ b/src/net/sourceforge/kolmafia/request/UseItemRequest.java
@@ -411,6 +411,16 @@ public class UseItemRequest
 
 		Integer key = new Integer( itemId );
 
+		// Gongs can only be used if we are not in form of anything
+		if (itemId == ItemPool.GONG)
+		{
+			if (KoLConstants.activeEffects.contains(EffectPool.get(EffectPool.FORM_OF_BIRD)) ||
+				KoLConstants.activeEffects.contains(EffectPool.get(EffectPool.SHAPE_OF_MOLE)) ||
+				KoLConstants.activeEffects.contains(EffectPool.get(EffectPool.FORM_OF_ROACH)))
+				return 0;
+			return Preferences.getBoolean("llamaSeen")?1:0;
+		}
+
 		if ( UseItemRequest.LIMITED_USES.containsKey( key ) )
 		{
 			UseItemRequest.limiter = "unstackable effect";
diff --git a/src/net/sourceforge/kolmafia/session/ChoiceManager.java b/src/net/sourceforge/kolmafia/session/ChoiceManager.java
index 072e1af..3165b35 100644
--- a/src/net/sourceforge/kolmafia/session/ChoiceManager.java
+++ b/src/net/sourceforge/kolmafia/session/ChoiceManager.java
@@ -2190,6 +2190,7 @@ public abstract class ChoiceManager
 		for ( int stepCount = 0; request.responseText.indexOf( "choice.php" ) != -1; ++stepCount )
 		{
 			Matcher choiceMatcher = ChoiceManager.CHOICE_PATTERN.matcher( request.responseText );
+			boolean resultProcessed = false;
 
 			if ( !choiceMatcher.find() )
 			{
@@ -2207,6 +2208,23 @@ public abstract class ChoiceManager
 			String option = "choiceAdventure" + choice;
 			String decision = Preferences.getString( option );
 
+			if (choice.equals("276"))
+			{
+				Preferences.setBoolean("llamaSeen", false);
+			}
+			else if (choice.equals("277"))
+			{
+				Preferences.setBoolean("llamaSeen", true);
+			}
+
+
+			if (!resultProcessed)
+			{
+				resultProcessed = true;
+				if (!(choice.equals("276") || choice.equals("277"))) /* Llama lama gong adv is not counted as a choice adv for conditions */
+					ResultProcessor.processResult( new AdventureResult( AdventureResult.CHOICE, 1 ) );
+
+			}
 			// If this choice has special handling, convert to real
 			// decision index
 
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin