• Welcome to Freedom Reborn Archive.
 

Swimmer attribute?

Started by Outcast, February 01, 2008, 07:38:26 AM

Previous topic - Next topic

Outcast

I don't know how, but could a superhero/character who has underwater or swimming abilities/powers have any unique advantage or attribute that can be used in  :ff: or  :ffvstr: ? For characters such as Aquaman? or Black Manta? :huh:

I guess it wouldn't make any difference, unless there are maps that more or less simulate an underwater environment... :mellow:


BentonGrey

Howdy Outcast, I suppose this is a job for me, huh? ^_^  Anyroad, I don't think a swimmer attribute would work, for the specific purpose that there would be no way to detect when you're going to a "water" map, or if you're in "water" terrain on a regular map.  Instead, I use a combination of custom attributes.  I have "Atlantian" which covers all of my basic undersea dwellers, like Aqualad, Aquagirl, and your random citizen of the city.  For Aquaman I use Atlantian Heritage, because he's WAY more powerful than your average gill-head.  I also utilize two different versions of each character, one for land and one for water.  I give the water versions higher speed and "flier."  You just have to choose the appropriate one for whatever map or mission you're playing.  It's not terribly elegant, but it's accurate and functional.  Here are the attributes if you're interested.

[spoiler]ATTRIB_ATLANTIAN_01, atlantian
ATTRIB_ATLANTIAN_DESC_01, you hail from the lost city of atlantis, and have many enhanced abilities thanks to your lineage (COMBINES: disciplined, heavy lifter, super leaper, fast healing, grim resolve, and level-headed).
ATTRIB_ATLANTIANHERITAGE_01, atlantian
ATTRIB_ATLANTIANHERITAGE_DESC_01, one of your parents hails from the lost city of atlantis, and you have many enhanced abilities thanks to your lineage (COMBINES: disciplined, heavy lifter, super leaper, fast healing, grim resolve, air superiority, and level-headed).
ATTRIB_MERA_01, extra-dimensional queen
ATTRIB_MERA_DESC_01, you gave up your crown in a parrallel dimension in order to be with the man you love, but you still have the incredible abilities of your people (COMBINES: disciplined, heavy lifter, super leaper, fast healing, grim resolve, air superiority, guardian (physical) and level-headed).[/spoiler]

GogglesPizanno

I always thought a good way to deal with "swimming" characters was to have a mission script for underwater levels that would look to see if there was a swimmer version of a character and swap them out for the regular when the mission loaded. If not, then any non swimmer characters could have their speed cut in half to simulate underwater moving.

It means that you'd have to create separate swimming versions of the underwater characters, but if you were doing that anyway, I cant imagine the scripting to be that difficult.

BentonGrey

The trouble is developing those scripts, especially for those of us who can barely manage EZScript. ^_^

Epimethee

Quote from: GogglesPizanno on February 01, 2008, 01:59:54 PM
I always thought a good way to deal with "swimming" characters was to have a mission script for underwater levels that would look to see if there was a swimmer version of a character and swap them out for the regular when the mission loaded. If not, then any non swimmer characters could have their speed cut in half to simulate underwater moving.

It means that you'd have to create separate swimming versions of the underwater characters, but if you were doing that anyway, I cant imagine the scripting to be that difficult.
If the whole map is underwater, it should indeed be quite easy. For mixed-terrain and low water-level maps, it's more tricky, though (lot more work for the modder/map author, tougher scripting, more processing power used, so-so results). It's really too bad IG never actually implemented their "Allowed Terrain" character attribute, as it could have helped a lot. 

BTW, it would be nice to have some meta-data standard description for maps, to detect water maps, deep space or interiors ones, etc. In the case of underwater maps, for example, it could allow the swimmer attribute to be done by simply giving Accidental Change instead, with the trigger set to isUnderwater. Slowing down non-swimmers seems like a good idea to me; ignoring the breathing aspect is probably saner. And fire material characters could be power nulled.

GogglesPizanno

QuoteBTW, it would be nice to have some meta-data standard description for maps

What about a standardized Marker naming scheme.
So that maps could have a marker named something like "maptype_xxxxx", where xxxxx was a predefined type of map (like land, underwater etc) If a map were missing that marker it could just default to standard land type.  Since marker info is so easy to read, as long as the naming and types were standardized and agreed upon, you could actually accomplish some really cool stuff.

Epimethee

Quote from: GogglesPizanno on February 01, 2008, 04:24:38 PMWhat about a standardized Marker naming scheme.
This could indeed be a good and logical solution. The only issue I would see (versus, for example, having a separate text file) would be that adding a meta-data marker to already existing maps would either require changing the maps themselves in FFEdit or having some familiarity with Python-based FF scripting.

stumpy

Hmm. For a fully underwater mission, reducing speed for characters could be done in a couple ways. A fairly general workable approach might just be to check for a "swimmer" attribute (the attribute wouldn't have to do anything, just be there or not) and dump a couple speed points from characters that don't have it when on an underwater map or when some mission attribute is set.

Honestly, though, for a mod where you are dealing with a known set of characters who might be swimmers and a limited number of missions where it's an issue, it might be just as easy to just check the squad's templates instead and lower the speed for those not on a given list.

A potential complication is that with FFX, there are lots of ways to switch character forms (SHAPESHIFTER being the most obvious) and so you have to do a periodic check to see if a new character has shown up and adjust their speed. There are also lots of attributes that alter a character's speed, so that might take a little bookkeeping as well. Nothing impossible, though.

Here is a potential starting point (totally untested!!) for the scripting addition to mission.py:
from m25ai import ST_char
from chardata import *

SwimmerTemplates = ['aquaman','aquaboy','namor','lori_lemaris','tellus','manta',]   # etc.

def CheckSwimmers(event=1):
    chars = filter(ST_char, Mission_GetDynamicObjects())
    for char in chars:
        if GetCharacterData(char).get('charName') in SwimmerTemplates:
            continue
        elif Object_GetAttr(char,'SwimmerChecked'):
            continue
        else:
            Object_SetAttr(char, 'templateSpeed', max(Object_GetAttr(char,'templateSpeed')-2,0))
            Object_SetAttr(char, 'speed', max(Object_GetAttr(char,'speed')-2,0))
            Object_SetAttr(char, 'SwimmerChecked', 1)
            # other special effects for certain characters
            if (Object_GetAttr(char, 'material')==4) or (ffx.hasAttribute(char,'overheated')):
                # whatever you want to happen here
                pass
    regTimer('CheckSwimmers', 2.3)

# in OnPostInit(), include the lines
  Global_RegisterAttr('SwimmerChecked', 0)
  regTimer('CheckSwimmers',2.3)

Outcast

Thanks for all the ideas and suggestions. ^_^

Hey Benton, i didn't know Aquaman had a fast healing attribute. So i checked the wiki and there it was. :doh:

The wiki also mentioned Aquaman being resistant to heat/energy?

Just thought, water based characters would be more vulnerable to heat or fire (i dunno...dehydration?) :P



BentonGrey

Interesting stuff guys, very interesting stuff.  I'm afraid I've got too much on my plate to run with this like I might want to, but it shows promise.

Yep Outcast, in Justice he was actually killed by Brainiac, who cut out part of his brain.  In a few days, it grew back and he healed.  Arthur is one tough son of a gun.  As far as the heat/energy resistance...well, Aquaman is just tough all around, and he has proven to be pretty resistant to energy-type attacks (like lasers, lightning, etc.) but I still give him a heat weakness to represent the whole dehydration thing.