Repository navigation
Add RaiseMoon deck - #297
xiaowenmao-bit wants to merge 4 commits into
Conversation
New deck executor for the RaiseMoon (レイズ・ムーン) archetype, together with the decklist and the script probe the executor uses to detect mass removal. - Game/AI/Decks/RaiseMoonExecutor.cs - Game/AI/Decks/RaiseMoonScriptWipe.cs - Decks/AI_RaiseMoon.ydk - Game/GameAI.cs: add SelectingEffectYn so a triggered-effect confirmation can be told apart from chain, idle-command and battle queries
|
Some setup context, so the workflow run does not have to be approved twice. Card IDs the deck needsEleven archetype cards plus the usual hand traps. The archetype ones:
All six archetype monsters are Level 7, which is why the extra deck is an R7 ladder rather than the usual Level 4 base. The extra deck also runs If your card database does not contain the eleven archetype IDs above, the deck will load but every archetype play will be skipped, because the executor matches on
|
4601714 to
f4d64f7
Compare
Rework of the initial submission, folded into the original PR instead of a separate one:/n- drop all logic for cards that are not in the deck - drop the side-deck system (plain 41 + 15 list) - add the chat/taunt module - rebuild on top of current master
|
Updated: this branch now carries the reworked version of the deck (previously opened as a separate PR) — same five files, rebuilt on top of current master. Everything for this deck is in this PR now. |
Brings the deck logic up to date with the version that is actually being used locally: - Maxx "C": on our own turn it only chains to a special-summon effect; on the opponent's turn it chains to a real summon effect, the "2 monsters already on board" case is reserved for the idle timing, and a bare card activation (field / continuous / equip) no longer counts as a summon effect. - Droll & Lock Bird: no draw effect (Squiz, Stars, Jackpot, Splendor) while it is applying, the draws simply cannot happen. - Moonlit City: one ●1/●2 per turn; with a second copy in hand the first one's effect resolves before the second is played, and the spare copy is only shuffled to the bottom when holding two or more. - Nibiru: not fired while the opponent has a negate-for-activation face-up or any set backrow. - Jackpot: the search replacement is skipped only when every search source in the chain is actually negated, instead of "some hand trap is in the chain". The deck list stays 41 + 15 with no side deck.
Puts the taunt module back after the executor was synced with the latest local build: Say / CountDraw / SayBounce, the per-turn opening lines, the reaction to the opponent's hand traps, the "idle for 30+ seconds" line, and the draw-counter lines on OnMove. Every line is Chinese; each one fires at most once per duel.
|
@foohyfooh This is the final version of the deck — everything is in this PR and I'm not going to push anything further. I've synced the executor with the build I've actually been running locally (the last two commits, Current shape of the change:
No further commits from me unless you ask for changes. |
Summary
Adds a new deck: RaiseMoon (
レイズ・ムーン, the "盈彩月夜" series), plus one small additive core API the deck needs.Game/AI/Decks/RaiseMoonExecutor.cs— new executor,[Deck("RaiseMoon", "AI_RaiseMoon", "Normal")]Game/AI/Decks/RaiseMoonScriptWipe.cs— deck-local helperDecks/AI_RaiseMoon.ydk— matching deck listGame/GameAI.cs— addSelectingEffectYn(13 added lines, no behaviour change for existing decks)Deck overview
The series has no search effect at all: every resource comes from drawing. All six archetype monsters are Level 7 and special summon themselves when drawn, and three of them also discard themselves from hand to draw a card, so the hand is the engine. The extra deck is an R7 → R8 → R9 → R12 ladder used for beatdown, while the boss monster is a spellcaster Xyz kept in the extra monster zone as a long-term lock.
Implementation notes:
net = (enemy gain − back token) − (own loss − Nibiru self value), and it waits out the current chain so the opponent can commit more summons first.RaiseMoonScriptWipeclassifies a card as non-targeting mass removal by reading itsc<id>.luafrom the localscriptdirectory. It returns0(no signal) when no script directory is found, so the deck degrades to "no wipe detection" on installs without scripts instead of misreading anything.EFFECT_SUMMON_PROConly applies when ocgcore computesminc == 0, and tributes can only come from your own field, so the summon is only attempted while the AI controls no monsters at all. When anything is on the field she simply stays in hand.Core change:
GameAI.SelectingEffectYntruewhile the server asks a yes/no question for an effect that just triggered (MSG_SELECT_EFFECTYN), reset tofalseat the start ofOnSelectChain,OnSelectIdleCmdandOnSelectBattleCmd.Some cards expose two effects whose
ActivateDescriptioncollides (or is missing), so the description cannot tell an optional trigger apart from an ignition effect. The kind of question being asked is the only reliable signal, and RaiseMoon needs it twice: a draw-on-special-summon trigger vs. a Quick Effect of one card, and an on-summon trigger vs. its own ignition effect of another. Purely additive — existing decks ignore the property.Verification
LangVersion 7.3(old-style project, .NET Framework 4.8 reference assemblies): 0 errors, 0 warnings.defaultliteral, inlineoutvariables, discards or pattern matching in the new files; 4-space indent, Allman braces, UTF-8 without BOM. Line endings are LF in the three new files, matching every other file underGame/AI/Decks/andDecks/;Game/GameAI.cskeeps its existing CRLF.Bot.Deck.scanning — deck-composition questions go throughBot.HasInDeck/Bot.GetCardCountInDeck.msbuild WindBot.sln /p:Configuration=Release. The deck has been played locally against a SRVPro/MyCard server, but not with this exact build.Things a reviewer may want to change
RaiseMoonExecutor.csis a long Chinese design document, including the iteration history that explains why several non-obvious checks exist. Happy to trim it to a shorter summary if that is preferred.bot.confandDialogs/entries for the deck were not added, perAGENTS.md.