It is currently 16 Apr 2024, 07:11
   
Text Size

Updates on the way.

MicroProse's Shandalar Campaign Game, now with new cards & a new look!

Moderators: BAgate, drool66, Aswan jaguar, gmzombie, stassy, CCGHQ Admins

Re: Updates on the way.

Postby TheKillerNacho » 27 Aug 2016, 18:20

Praise Korath! =D>
With much cheese,
TheKillerNacho
User avatar
TheKillerNacho
 
Posts: 76
Joined: 14 Feb 2016, 19:26
Has thanked: 17 times
Been thanked: 18 times

Re: Updates on the way.

Postby TheKillerNacho » 01 Sep 2016, 19:51

Point of inquiry... would it be possible at all to be able to specify more than 30 cards in [DungeonTreasure], and have the game select 30 of those randomly upon New Game (or opening Shandalar if its easier; I don't think them changing actually affects saved games. From my understanding, dungeons are generated at start of New Game and saved in the save file, yes?), treating the rest as Nochoose?

I'm just curious; I'd like to expand my Nochoose section some but would still like those cards to be found as dungeon treasure. I'm just asking how easy it would be to do this and to bring up this idea. By no means do you have to take my suggestion. :lol:
With much cheese,
TheKillerNacho
User avatar
TheKillerNacho
 
Posts: 76
Joined: 14 Feb 2016, 19:26
Has thanked: 17 times
Been thanked: 18 times

Re: Updates on the way.

Postby Korath » 01 Sep 2016, 21:50

User avatar
Korath
DEVELOPER
 
Posts: 3707
Joined: 02 Jun 2013, 05:57
Has thanked: 496 times
Been thanked: 1106 times

Re: Updates on the way.

Postby Korath » 03 Sep 2016, 20:16

So, on Thursday evening I had a working implementation of cards templated as "any player may activate this ability", with Squallmonger as exemplar, complete, locally committed, and ready to push to our repository. I'd thought that most of the machinery to support it natively (so that you can just click on your opponent's Squallmonger to activate it, rather than mucking around with an extra effect card like the MicroProse version of Ifh-Biff Efreet uses) was already present, because of the well-known bug that lets you activate the AI's cards during upkeep.

It turned out significantly more difficult than I'd anticipated, though: it turns out that there's a different chunk of code that handles something activated or cast at sorcery speed than when cast in response to something on the stack, or during another phase paused by right-clicking on the phase icons on the left side of the screen. In particular, that chunk of code is embedded into the main_phase() function, which is much more opaque, lengthy, and poorly-decompiled than usual for Shandalar.exe, particularly for a part of the game that's a non-UI, non-AI part of duel. I ended up just importing the function's decompilation output into Shandalar.dll and looking for regressions instead of trying to verify the decompilation against the actual assembly like I normally do. (I found only two, though there were probably more that I overlooked: the phase display on the left didn't properly update when entering the first main phase of a turn, and every attempt to declare a creature as attacking in a band with another errored out with "Illegal target (?)", both due to sign errors. (Fun fact that I discovered in passing: you can make a creature with banding attack on its own, bypassing the irritating "Band with other attacker?" prompt, by double-clicking on it. I'd been declaring my Benalish Hero's and Mesa Pegasus'i as my first attackers for twenty years just so the game wouldn't annoy me with that.))

But, after the better part of a week, it was fully functional: it highlit properly; activated if you clicked on it (instead of culling the click for being on the wrong player's card, at several different points); activated itself when clicked on, rather than your card with the corresponding index; didn't let you pick it as an attacking or blocking creature; charged the right player mana; gave you an opportunity to activate it if the AI did something and you didn't have any other castable instants or playable abilities; didn't constantly bombard you with "Activate abilities? (Regeneration)" or "Activate abilities? (Damage prevention)" prompts; and let the AI select it to activate, both spontaneously and in response. And each of those was a fight to get right.

Astute readers and native speakers of English will notice that everything in there is phrased in the past tense. That's because early on Friday morning, the hard drive that my development environment is on failed catastrophically and without warning. I didn't have backups, because the machine we'd been using for our git repository failed about a month ago, I'd donated the computer I'd been using as a backup server to take its place, and hadn't yet finished setting up a new one. (Most irritatingly, I was doing just that when the drive failed: I'd resurrected a computer a friend of mine had given up on as dead, but actually only needed its RAM reseated; it didn't have a hard drive in it, just an SSD that's only large enough to boot Windows, so I was sitting in front of it, remote-desktopped into my main machine and browsing newegg, when the latter BSOD'd.)

This isn't a total disaster for Shandalar, even though I haven't been able to recover anything from the drive, and am close to giving up hope on it entirely. Everything from development up until last Sunday was pushed to the main repo (big sigh of relief - I hadn't remembered pushing the branch for the next Shandalar version since well before releasing HS2, and wasn't able to verify that I had until about an hour ago, since my git and ssh keys were on that drive, too). What I did lose:
  • My decompilation databases. I should be able to reconstruct the ones for Shandalar.exe and Manalink.exe from the exe_shandalar.c I posted with HS2 source last Saturday and the less-current but still not too badly out-of-date magic.c I posted in Manalink's dev forum: it'll be time-consuming to enter it all back in, but data entry is way preferable to starting from nothing. I'd probably have given up entirely if that had happened, the same way Mok did. The ones for deckdll.dll and drawcardlib.dll are gone, but I shouldn't need them again. I'd begun ones for csv2dat and ct2toexe, with an eye to making bug-for-bug-compatible versions in C, but I don't recall how much progress I'd made.
  • A bunch of scripts that I use to package releases and perform other local maintenance (like the one I use to neatly sort lists of new cards by set, then by type and color in close to the same order as their collector numbers; the one that parses MODO decklists from wizards.com into Manalink/Shandalar-compatible .dck files; and the one that finds all the .dck files in a given directory that don't have any cards missing in Shandalar). The critical one that generates new Manalink.csv/ct_all.csv lines from Gatherer data is safely in the repo; on reflection, they all should have been. The only one of these that's more than a personal annoyance, though, is the release builder.
  • The psd source for the expansion symbols, ability icons, counters, and card frame imagery. I can make do with the flattened pngs from release for the expansion symbols, but I'm SOL for the latter three. The chances of me making any more card frames are slim indeed, and any new counter types will probably just be recolors of existing ones unless someone is willing to put together a reasonable-looking psd for me. To be honest, they needed a facelift anyway. Losing the ability icon source will really hurt, though, and I'm going to have to start over from scratch before making any new ones.
  • Triage for cards not yet in Shandalar. I had gone through every Magic card there is and marked it either as implementable now, or which engine feature it needed, so that, when I implemented that part of the engine, I could immediately get a list of newly-programmable cards.
  • Squallmonger and its extensive support code, as lamented above.
  • Myth Realized, Svogthos, the Restless Tomb, Chimeric Mass, and I think maybe one other card that animates itself with a power/toughness characteristic-defining ability like those three do.
On the plus side, I don't think I lost any recent programming besides those four or five cards; and I'll be able to accurately document a step-by-step walkthrough to getting a working development environment for the wiki, because I'll be doing that myself. (And the wiki really needs it. It still horrifically recommends you unpack the source tree directly into your gcc installation directory, for instance.)

This'll probably be the last set of new cards I post for some time.
| Open
About Face
Accorder Paladin
Apathy
Aquamoeba
Arachnus Web
Archon of the Triumvirate
Arrest
Ashling's Prerogative
Aven Mimeomancer
Axebane Guardian
Azorius Arrester
Azorius Justiciar
Bloodlord of Vaasgoth
Bloodspore Thrinax
Boggart Mob
Boldwyr Heavyweights
Bramblewood Paragon
Brood Sliver
Calcite Snapper
Changeling Berserker
Changeling Hero
Changeling Titan
Charmed Griffin
City of Solitude
Coalition Relic
Containment Priest
Copperhorn Scout
Crag Puca
Crookclaw Transmuter
Cursed Totem
Cyclopean Tomb (rewritten MicroProse card)
Dance of the Skywise
Darksteel Mutation
Dawn's Reflection
Death Match
Detainment Spell
Dragon Whelp (rewritten MicroProse card)
Dwarven Thaumaturgist
Edric, Spymaster of Trest
Encrust
Enslaved Horror
Erratic Explosion
Erratic Mutation
Essence of the Wild
Explosive Revelation
Ezuri, Renegade Leader
Fanatic of Xenagos
Fluxcharger
Foster
Game Preserve
Gather Specimens
Genju of the Realm
Ghost Quarter
Gift of Tusks
Goblin Charbelcher
Goblin Clearcutter
Goblin Machinist
Goblin Wardriver
Grand Abolisher
Grip of Amnesia
Grove of the Burnwillows
Hallowed Moonlight
Harbor Guardian
Heartwood Storyteller
Hinder
Hired Giant
Horn of Plenty
Humble
Humility
Inaction Injunction
Indentured Djinn
Inside Out
Isperia's Skywatch
Kaboom!
Krasis Incubation
Kuldotha Ringleader
Kumano, Master Yamabushi
Lavinia of the Tenth
Leyline of Singularity
Liege of the Tangle
Lightning Crafter
Lignify
Linvala, Keeper of Silence
Longhorn Firebeast
Loxodon Partisan
Lyev Decree
Lyev Skyknight
Manamorphose
Mannichi, the Fevered Dream
Market Festival
Martial Law
Master Biomancer
Mentor of the Meek
Merfolk Thaumaturgist
Mirrodin's Core
Mistbind Clique
Molten Influence
Mtenda Lion
Myr Quadropod
Nalathni Dragon (rewritten MicroProse card)
Nessian Demolok
Nessian Wilds Ravager
New Prahv Guildmage
Nightsnare
Nissa's Chosen
Nova Chaser
Null Rod
Omen
One Thousand Lashes
Oona's Blackguard
Orcish Lumberjack
Ornitharch
Ovinize
Path to Exile
Pattern of Rebirth
Phantasmal Fiend
Pharagax Giant
Plasm Capture
Polymorphist's Jest
Ponder
Portent
Prison Term
Prowling Pangolin
Quicksilver Fountain
Sabertooth Outrider
Sage of Fables
Serum Powder (I am particularly relieved not to have lost this one, since I took the trouble to properly integrate it into the mulligan dialog)
Shape Anew
Shrike Harpy
Sibilant Spirit
Signal Pest
Siren of the Fanged Coast
Snake of the Golden Grove
Snakeform
Soul Sculptor
Soulsworn Spirit
Stasis Cocoon
Stony Silence
Stupefying Touch
Sundering Titan
Suppression Bonds
Supreme Exemplar
Synapse Sliver
Tendo Ice Bridge
Thunder Brute
Titania's Song (rewritten MicroProse card)
Transmutation
Treasure Hunt
Turn to Frog
Turtleshell Changeling
Twisted Image
Umezawa's Jitte
Unifying Theory
Urborg
Valakut Fireboar
Vendilion Clique
Vexing Devil
Viper's Kiss
Vivid Crag
Vivid Creek
Vivid Grove
Vivid Marsh
Vivid Meadow
Wanderwine Prophets
Windreaver
Wren's Run Packmaster
Xathrid Gorgon
Zameck Guildmage
User avatar
Korath
DEVELOPER
 
Posts: 3707
Joined: 02 Jun 2013, 05:57
Has thanked: 496 times
Been thanked: 1106 times

Re: Updates on the way.

Postby gmzombie » 04 Sep 2016, 15:31

this is indeed sad news but at least all was not lost. is there anything i can do to help you? dont know if it will help but there is a 8/8/16 version of drawcardlib.c in the src folder of manalink and also a deckdll.cpp in the deck folder of the src folder. Also was thinking about it maybe when you get your decomps up and your environment setup pm me. I can be the official backup if you would like. i keep multiple copies of manalink stuff on a few drives just in case and would have no problem if we setup something so i could store these files as well. Or i can get a network drive much like a western digital 4tb sharespace network drive. i currently have a 2 tb seagate that i barely use but anyways just let me know what i can do.
can I maze of ith your snowstorm?

http://home.comcast.net/~gmzombie/index.html old stuff in here. don't use this stuff right now till I get time to get back into it and readjust.
gmzombie
 
Posts: 857
Joined: 26 Feb 2009, 01:05
Location: Wyoming, Mi
Has thanked: 200 times
Been thanked: 51 times

Re: Updates on the way.

Postby Korath » 04 Sep 2016, 22:17

Well, there's three themes among the stuff I lost: stuff I did very recently; stuff that I thought wasn't important; and stuff that involves large binary files (which git doesn't deal well with). Everything else is sitting on the machine that used to be my backup server, and I've already redownloaded it.
User avatar
Korath
DEVELOPER
 
Posts: 3707
Joined: 02 Jun 2013, 05:57
Has thanked: 496 times
Been thanked: 1106 times

Re: Updates on the way.

Postby Rawky » 04 Sep 2016, 23:07

What can I offer in the way of a donation?
Rawky
 
Posts: 106
Joined: 09 Oct 2015, 02:40
Has thanked: 25 times
Been thanked: 31 times

Re: Updates on the way.

Postby drool66 » 05 Sep 2016, 18:56

Just seeing this now. Very sorry to hear about all the lost work :( Echoing gmzombie's comment, I'd be happy to help in any way I can. (You mentioned a lot of data entry? Any hardware to purchase that might help?)

Art Update for the above (will be rolled into future Cumulative archives and Manalink updates):
http://www.mediafire.com/download/833382fu3exg4wk/Shandalar_CardArt_Update_Sept2016.zip
Last edited by drool66 on 05 Sep 2016, 20:12, edited 1 time in total.
User avatar
drool66
Programmer
 
Posts: 1163
Joined: 25 Nov 2010, 22:38
Has thanked: 186 times
Been thanked: 267 times

Re: Updates on the way.

Postby Korath » 05 Sep 2016, 19:49

The data entry isn't unskilled labor; it's a matter of loading up the decompiler in one window, and the output from the decompiler with the old database (available in Shandalar source distributions as src/exe_shandalar.c) in another; then clicking on each function and variable name one by one in the first window and giving it the name it used to have. Furthermore, the decompilation databases (which is where this information gets stored) is fairly clumsy to transfer back and forth between people.

I appreciate the thought on donations, but it couldn't help unless the amounts were ridiculous - reputable data recovery starts at around a thousand dollars without guaranteeing success. Most of my development delay is going to be in reinstalling and reconfiguring local software, and a partial drive recovery wouldn't help with that anyway.

The most delegatable tasks I currently have are the art-related ones. We're eventually going to need drawcardlib frames for Kaladesh's vehicles, and would probably benefit from an updated conspiracy frame for the new style in CN2; those can both be developed completely without my intervention. For counters, I could use a Photoshop template; the old one I used, I could just add a color layer on top and drag put an icon into the right place on the layer stack, and poof, done. The one for ability icons was a little more involved, but only a little - most of the work was still getting flat artwork into the template, which made it look pretty and consistent with the others.

drool66: there's also a chunk of cards in this post, but the work-in-progress posts I make to this thread aren't really canonical; I assemble them by cut-and-pasting out of my git commit messages. I could easily miss mentioning an added card in a git commit, or I could overlook a relevent commit while putting together a post. When I make a formal art request (for Shandalar, anyway), I do that by comparing the output from "shandalar -c" in the old and new versions, and that's guaranteed not to miss anything except perhaps tokens.
User avatar
Korath
DEVELOPER
 
Posts: 3707
Joined: 02 Jun 2013, 05:57
Has thanked: 496 times
Been thanked: 1106 times

Re: Updates on the way.

Postby TheKillerNacho » 06 Sep 2016, 15:18

Ouch! Sorry to hear about all of this... I had a HD die on me recently, it completely sucks. Personally I'd be willing to donate $250 or so if you could get the rest and it would save you a significant amount of time (least I could do to support your hard work, really). If there is any other way I could help just let me know.
With much cheese,
TheKillerNacho
User avatar
TheKillerNacho
 
Posts: 76
Joined: 14 Feb 2016, 19:26
Has thanked: 17 times
Been thanked: 18 times

Re: Updates on the way.

Postby drool66 » 06 Sep 2016, 17:53

The most delegatable tasks I currently have are the art-related ones. We're eventually going to need drawcardlib frames for Kaladesh's vehicles, and would probably benefit from an updated conspiracy frame for the new style in CN2; those can both be developed completely without my intervention. For counters, I could use a Photoshop template; the old one I used, I could just add a color layer on top and drag put an icon into the right place on the layer stack, and poof, done. The one for ability icons was a little more involved, but only a little - most of the work was still getting flat artwork into the template, which made it look pretty and consistent with the others.
I've been going through the CardArt folder to see what goes into developing new frames - looks doable for me. I'll take a stab at the Conspiracy & Kaladesh frames starting tomorrow (incl. new vehicle P/T boxes), and probably work on figuring out how exactly they work over the next few weeks. It seems like WotC comes out with new frames every other set now, so it's probably best if I can get a system down.

I do have some experience creating vector art, which is probably how I would design any new counters or ability icons - then export to abilities.pic/abilities40.pic/cardcounters.png. You would have to get me your PS template & walk me through how you template them (shading, drop shadow, etc) if you want continuity in style from the current ones. You've done an amazing job on this, btw.
User avatar
drool66
Programmer
 
Posts: 1163
Joined: 25 Nov 2010, 22:38
Has thanked: 186 times
Been thanked: 267 times

Re: Updates on the way.

Postby Korath » 06 Sep 2016, 19:16

See, I don't have my PS template anymore, that's the point. :) And I fully expect to have to recreate the existing icons so the style matches.

It's been a very long time since I made the templates, so I don't remember precisely how I generated them. End-use for a particular ability icon was usually just applying the layer style from an existing one; but the layer styles for each individual color of icon were slightly different. I seem to recall that was mainly because for some reason I didn't want to change the colors of the art I was pasting in. So, with the green icons especially, but also to some extent the red and blue, the color of the input art had to be visibly different from what it looked like after styling. In retrospect, that was a pretty horrid design decision, even before considering what it made me have to do for, say, the can't-activate-abilities icon new to EMN2: I had to create an all-beige icon (for the white parts) and an all-blue one, then manually edit the two images together.

In any case, coloring shenanigans aside, the main effects were an outer bevel and an inner gradient (blended with overlay? soft light? perhaps hard light and low opacity? I don't remember, and it's important that it work properly with nearly-black images like the Fear one, as well as nearly-white ones like Vigilance or Protection). The outer circle could just get pasted in from the existing flattened image, though it's so basic that even a minimal-effort restart from scratch would probably turn out better.

What I did for counters is hardly worth preserving. I'm reasonably happy with most of the designs - the icons and colors and in some cases overall transparency of individual counters, with some standout exceptions like the fugly icons on Fasting's hunger counters or Myth Realized's lore counters - but the base oval is decidedly low-quality, and my attempt at a specular highlight in the upper left a miserable failure.
User avatar
Korath
DEVELOPER
 
Posts: 3707
Joined: 02 Jun 2013, 05:57
Has thanked: 496 times
Been thanked: 1106 times

Re: Updates on the way.

Postby drool66 » 06 Sep 2016, 20:57

See, I don't have my PS template anymore, that's the point.
Oh, I see. :P

Thank you for the breakdown. So then I'd be happy to do the abilities and counters if you would like, but I would probably just make new but similar ones from scratch. That might actually make it easier for me; I do a bit of design work and I'm usually pretty good at this kind of thing. Can you then point me to a reference for them - ie. the ability or counter each element corresponds to. I believe I saw one months or years ago, and I've been trying to find it again for a while now.

Thank you!

(Edit: Strikethrough - Found it in text.res. Why is what I need always in the very next place I look after I ask for help?)
User avatar
drool66
Programmer
 
Posts: 1163
Joined: 25 Nov 2010, 22:38
Has thanked: 186 times
Been thanked: 267 times

Re: Updates on the way.

Postby Korath » 06 Sep 2016, 22:09

The @ABILITYWORDS and @CUECARD_COUNTERS_SPECIAL entries in Text.res should be accurate (if they're not, it's a bug), but the definitive location is in src/defs.h. Search for "counter_t" for counters and "ability_icon_t" for ability icons.

I don't need individual images, though, just something I can drop flat artwork into and have it come out looking ok on the other end. If I have to rely on someone else to do artwork for the main distribution, that's actually going to increase the overall delay in the long run, rather than decrease it. (And we're really only looking at a two or three-day delay for this even if I have to muddle through it all myself again anyway.)
User avatar
Korath
DEVELOPER
 
Posts: 3707
Joined: 02 Jun 2013, 05:57
Has thanked: 496 times
Been thanked: 1106 times

Re: Updates on the way.

Postby Korath » 17 Sep 2016, 23:15

Status report.

I've got a mostly-complete dev environment in place. Cygwin's various quirks had annoyed me to the point where I was really unenthusiastic about installing it again; and the perl shipped in standard mingw's minimal msys environment is so horrendously out of date - 5.8, released in 2008 - that it can't run any of the maintenance scripts I still had; so I looked into msys2. I'm mostly happy with it.

A major exception is with gdb. 64-bit gdb can't debug 32-bit programs, and the 32-bit version of gdb that msys2 ships can't trap SIGTRAP - it kills the thread that gets the signal instead of trapping to the debugger. So no breakpoints, and no UserDebuggerHotKey. Behavior's the same if I compile gdb myself. It does trap SIGSEGV, so that's something. The 64-bit version works fine, but that doesn't help for Manalink/Shandalar.

I don't yet have Photoshop on this machine, since I can't find my old installation media. I can't justify buying it again since I don't use it for work anymore and since the most recent non-subscription-only version is years out of date. There's no way I'd be willing to pay $50 a month for the current version. (And they wonder why people steal it.) For now, I can limp along with the install on the old machine - it was installed to a drive I hadn't lost - but that's going to be unusably inconvenient in the long term.

I haven't yet begun to setup decompilation again either.

I've lost enthusiasm for working on manlands and other activate-to-animate-self cards, so it's going to be a long time before I get back to the ones I hadn't yet pushed. Those are mostly the ones that add a non-keyworded ability as they animate themselves, like Raging Ravine and Myth Realized. On the other hand, I've reconstructed the any-player-may-activate engine update, though I've tested it much less throughly than before, especially with respect to how the AI deals with it.
Also, added just about all of the relevant cards | Open
AEther Storm
Armageddon Clock (MicroProse rewrite)
Drain Power (MicroProse rewrite)
Endbringer's Revel
Erosion (MicroProse rewrite)
Errant Minion (Inexact - it reuses Power Leak, for which see below.)
Excavation
Feral Hydra
Flailing Manticore
Flailing Ogre
Flailing Soldier
Ifh-Biff Efreet (MicroProse rewrite)
Infinite Hourglass
Land's Edge
Lethal Vapors
Lord of the Pit (MicroProse rewrite)
Merseine
Oona's Prowler
Personal Incarnation (Partial MicroProse rewrite, so its owner activates it - see here.)
Power Leak (Partial MicroProse rewrite, so it triggers per its modern wording instead of activating during upkeep; but you still can't choose to pay more than 2 mana, if you were inclined to do so.)
Power Surge (MicroProse rewrite)
Quicksilver Wall
Ribbon Snake
Sailmonger
Saproling Cluster
Scandalmonger
Soul Ransom
Squallmonger
Task Mage Assembly
Tidal Control
Vintara Elephant
Volrath's Dungeon
Wall of Vipers
Warmonger
Well of Knowledge
Wishmonger
Zerapa Minotaur
Of the remainder, I plan to work on Mana Cache tonight. Deadly Designs will have to wait until Conspiracy 2 is in Manalink.csv (I'll add it with Kaladesh); Lightning Storm is a no-go, since it activates while on the stack (so not doable yet even if only its controller could do so); Martyrdom, Mercenaries, and Samite Sanctuary prevent or redirect specific packets of damage, and I'm not going to do anything with that until the whole system's using modern rules instead of the fourth-edition-era damage prevention step; and I have so little confidence in the AI's ability to semi-intelligently activate Clergy of the Holy Nimbus, Knight of the Holy Nimbus, Glittering Lion, and Glittering Lynx that I'm not even going to try for now.

The original MicroProse Armageddon Clock used a hack that let either player activate either player's cards during the upkeep phase. Not just Armageddon Clock, but every card that didn't specifically check for it. (See this Manalink bug, the same one I mentioned in my last update post.) This was harmless for the AI, since the original MicroProse AI didn't speculate during upkeep, and only activated a card if that specific card forced the AI to. Most humans don't notice it, since the function that highlights activated cards' titles in yellow doesn't check for it (and so the AI's Armageddon Clock didn't show up in yellow for you, either). And I was avoiding the problem in cards I'd rewritten in Shandalar, since I put in the specific check in the same place that all of my Shandalar cards check to see if you have enough mana to activate (even if the mana cost is 0, in anticipation of effects that modify cards' activation costs).

Still, since the MicroProse hack was no longer necessary (as I'd rewritten Armageddon Clock to use the more general any-player-may-activate system) and since it complicated a lot of functions I was moving into Shandalar.dll to make the new system, I removed most of it. A side effect of part of it turns out to be the reason why the AI didn't spontaneously activate abilities and cast instants during upkeep, despite me having put in an abbreviated AI speculation loop during upkeep in both Manalink and Shandalar so that it deals with upkeep triggers intelligently. So now I'm seeing the AI do things like tap my creatures with Icy Manipulator or Enervate during my upkeep, and activating Infinite Hourglass to remove counters only when it would benefit more from that than I would, without me having to do anything specific to encourage it. I imagine some cards like Mana Short and Icy Manipulator and so on could now stand to have some AI discouragement from using them during its own turn, but still, this was a totally unexpected and fairly major benefit.

Also, I learned enough doing this feature that making cards and abilities like cycling that activate from your hand is probably feasible, without a Manalink-esque Rules Engine hack, or even by faking them by making them alternative casting modes instead of real activations. I might even be able to do it without having to go through the hassle of setting up decompilation first.

I'd be thinking about making a release around now, except Kaladesh is going to be on Gatherer in another couple days, and I expect to be able to put in a fairly high percentage of it without much effort. Getting them from Gatherer into Manalink.csv will probably be harder - I still have the script that translates from Gatherer Extractor's xml output, but not the instructions I'd written up for how to use it, and those were nontrivial.
User avatar
Korath
DEVELOPER
 
Posts: 3707
Joined: 02 Jun 2013, 05:57
Has thanked: 496 times
Been thanked: 1106 times

PreviousNext

Return to Shandalar

Who is online

Users browsing this forum: No registered users and 22 guests


Who is online

In total there are 22 users online :: 0 registered, 0 hidden and 22 guests (based on users active over the past 10 minutes)
Most users ever online was 4143 on 23 Jan 2024, 08:21

Users browsing this forum: No registered users and 22 guests

Login Form