2014-06-17 14:59:08

The complete English documentation by yours truly is available on the English page on the sound rts crazy mod site.

2014-06-17 15:40:24

I'll try to setup a public server.

@sanslash332

Are you talking about something like autocast in Warcraft 3? An ability would have an autocast parameter with for example "never/yes/always".

The range is more about minimal range and maximal range. But, at the moment, it would be simple to do what zakc93 suggests and attack in the same square if possible (range), then, as a second choice, attack in another square if possible (special_range). Ideally the notion of square would be removed from the simulation, even if it might be useful to keep it in the user interface.

The zerg drone mutation would require a variant of the "upgrade to" order with a "meadow" target. By the way I'll have to check the differences between buildings and units. They are small if I remember correctly.

The zerg will also require the notion of creep: buildings providing creep and buildings that can be built only on creep. Etc.

The summoning sacrifice might be achieved by upgrading a unit to an "effect unit" with eventually a decay.

I won't be able to describe all, but the simulation is in the files that start with "world". Interesting classes are in this list from world.py line 231:

    unit_base_classes = {"worker": Worker, "soldier": Soldier, "building": Building,
                         "effect": Effect,
                         "deposit": Deposit,
                         "upgrade": Upgrade, "ability": Ability}

The abilities are in worldunit.py (it's messy I know, but the code is a bit mingled so it's not easy to split it; I'll try again).

@zakc93
Yes, a flag for conversion would be useful, especially since at the moment any enemy unit (or building) is convertible.

A flag for teleportation would be more flexible, since only the Unit class (Soldier, Worker) is teleportable. Teleportability could be changed unit by unit while having the current defaults provided by the Building and Unit classes.

2014-06-17 16:55:00

hi sound Mud, also another suggestion on effect_range you should be allowed to specify a number of squares away the effect will work, because right now the only choices are the square where the unit currently is, the ajacent square, or anywhere. For effects such as teleportation that can move an entire square of units to a new location that seems a bit overpowered, specially on large maps. Ideally the teleportation ability would be able to be used anywhere within 9 or 10 squares of the square where the caster was, with diagonal squares counting as 2, so for example teleportation from a3 to f8 would be 5+5 = 10 squares and would therefore be possible with a 10 square range but not a 9 square range. Though if you remove squares like you said, this could be far more difficult to do.

I like to sleep, Sleep is good,
This is how I do it: Lie on a nice warm cozy bed, and dream dreams about how to rule the world!
Follow @TheGreatAthlon5 on twitter for humorous facts and game updates!
If you like my posts, thumb me up!

2014-06-17 17:15:58

Hi.

The update 8.2 is available : http://pragmapragma.free.fr/soundrts-crazymod/

We are glad that the development of SoundRTS continues. I will discuss with our group to see if we have other suggestions.

Maybe there is a bug with the conversion. Sometimes, the converted unit doesn't attack immediatly.

Another point, with the units that attack adjacent squares without see them, with a war fog and ennemies in the adjacent square, they block, and there is just the imperative order that can unblock.

Thanks, and don't forget to update to 8.2 to access to the server.

2014-06-17 17:18:36

I remember there was a time that teleportation had a limit of how many units could be teleported, I think it was 10 at the time so each mage could only teleport 10 units (although this could be modified in the rules). I don't remember why it was removed though, but it seems like it could maybe also help with the problem of teleportation being too overpowered.

2014-06-17 17:27:54

The documentation has been updated to reflect the changes made in version 8.2. As always, it can be found at https://dl.dropboxusercontent.com/u/213 … glish.html

I love the improvements to technical airship speed and the fixes for spook lights.

2014-06-17 17:37:53 (edited by frastlin 2014-06-17 18:02:41)

Is there any way to:

  1. cycle through special units like dragons and high level units?

  2. Hear what everything does ingame (preferably before I buy it)?

  3. Use a menu with the arrow keys to see everything that is in the room (separate land stuff from mob stuff?

  4. cycle through all work units who are not assigned?

  5. hear the focus of the game

Also, it would be really cool if one made a story to go along with different units. Also, it may be more clear if the different races could be chosen before the game starts.
Is there a way to jump to all enemy units in your area?
Can I have the computer play at different difficulties against me with different builds?
Is there any way to see the amount of stone or other types of resources I have?

2014-06-17 20:28:07

In theory it's already possible to define races. Here is an example from the orc mod, rules.txt:

; races

def orc_race
class race
townhall great_hall
farm pig_farm
peasant peon
easy orc_easy
aggressive orc_aggressive

It means that when a map is loaded the townhall must be replaced with a great_hall, etc.
The easy AI is replaced with an AI called orc_easy.

The name of the race is defined in style.txt:

; races

def orc_race
title 4302

2014-06-18 05:34:17

@SoundMud: is it possible to have smarter AIs? E.G instead of just having a scripted list of things to build and recruit, the AI would be able to make smarter decisions about what to build, based on the encounters that it has had? Or alternatively, a way for creaters to have the AI do different things depending on what race it faced? I'm not sure how it would react if the AI faught against multiple enemies of different races though...

2014-06-18 11:28:57

@Victorious: the AI remembers every enemy unit or building, so it can be done. The AI would count which enemy units are the most numerous. The syntax could be for example:

1. either a fine-grained criterion describing the exact list of units:
goto_counter flying_machine,dragon air footman,knight ground archer ranged
label air
get 10 archer
label ground
label ranged

2. or a simpler command using generic types of units known by the AI code (if these can be guessed from their stats or abilities, or suggested by the rules or ai files I don't know):
goto_counter
label air
get 10 archer
label ground
label ranged

Note that now that the code is available a complete rewrite of the AI could be done, even if the code is probably still coupled with the rest of the code.

About an AI API, I have stumbled upon an API to create AIs for Starcraft Broodwar:
http://bwapi.github.io/
"The Brood War Application Programming Interface (BWAPI) is a free and open source C++ framework that is used to interact with the popular Real Time Strategy (RTS) game Starcraft: Broodwar. Using BWAPI, students, researchers, and hobbyists can create Artificial Intelligence (AI) agents that play the game."

I wonder if it could be possible to use the API to access to the state of the game and render it with audio only.

2014-06-18 13:05:53

how can I use chat in the game? thanks for help.

“Get busy living or get busy dying.”
Stephen King

2014-06-18 16:59:22

Well, some things.

About the robots, specify the mobile sensor units. This robot, comparing with air counterpart, is completely useless, specially because it's is in the same tier that drone.
For train a mobile sensor, you need a mainframe, robotics fabrics and a signal modulator. But for drone, you need only one more building, magnesite extractor, that is a key building for can train all of damaging units.
The only situation in that you have signal modulator, but not magnesite extractor, is if you want go to directly to build plasma canons, but. Is very hard make this build, because the tier 3 of robots is pretty expensive and try to reach this level in a few time without any kind of battling support is really impossible.

The point is, when you have built a signal modulator, in the most cases, you have a magnesite extractor previously created. and you prefer create drones instead mobile sensors.

Is necessary make more differences between mobile sensor and drone, specially reduce the tier of mobile by one, or change a drone making it a upgrade of mobile sensor instead a different  unit.

For easier detects of this kind of problems, we have to create a tech tree for each race, and deffine which units, buildings and upgrades are in each tier of that race.

For example, only darks and savages have soldiers in a early tier 1. All other races requires more than one building for can train the basic soldier for them. But, the tier 3 of technician are pretty poor; in tier 3, they have one more building with one upgrade, but don't have more units, or spells. but! they tier 2 is to powerful having the option to create they most powerful airships.

In the case of savages, in their tier 2, they only have the option to create one building that is unique purpose is making hunters able to invoke their pets, and in tier 3, them have one more ability enabler building, and one new unit with a lots of powerful skills. Without counting the sentinel tree.

@soundmud:

Are you talking about something like autocast in Warcraft 3? An ability would have an autocast parameter with for example "never/yes/always".


Really? this is currently implemented in the game? lol i don't know about this xD.
How do it works? Specially the yes and always syntax? which is the interval of autocast an ability, is possible do that a unit, autocast its skill when it is starting to attack? for example replace the normal damage with a one explosive suicide skill (like zerg's banelings) that is autocasted when the unit is in battling mode?

@:
The range is more about minimal range and maximal range. But, at the moment, it would be simple to do what zakc93 suggests and attack in the same square
if possible (range), then, as a second choice, attack in another square if possible (special_range). Ideally the notion of square would be removed from
the simulation, even if it might be useful to keep it in the user interface.

hmmm yes, but the special range condition says that the unit can attack the entire square standing in adjacent square? (as the parameter currently works)
For example, a sniper have range of 5 (can attack in the same square with a maximum range of 5 meters) and the special range flag. In the adjacent squares, it's shoots can damage any unit in this square? completely ignoring the distance into this square?


@:

The zerg drone mutation would require a variant of the "upgrade to" order with a "meadow" target. By the way I'll have to check the differences between
buildings and units. They are small if I remember correctly.

Hmmm you should make a upgrade option with some targets options. For example self (like the current behavior) Meadow (like a zerg variant) or another that needs target another unit for fusion both (or the entire group) of units. And some extra requirements to upgrade, for example, that is necessary to be standing next to a specific building. Like am... an elf that requires meditate next to its mind tree to raise its mental aptitudes. xD. or in the case of zergs, or protoss, that the creep or psy influence can be implemented as objects or buildings. Or well, a ability of buildings that change the meadows of their squares and adjacent, into another terrain type.
If this is implemented, one effect that is change one terrain by another, a new kind of skills can created for disturbing the opponent. One that makes unavailable the terrains of a selected square, turning the meadows (or resource deposit) into infested forest, infested gold, poisson meadow, etc etc. by a period of time, of course.

Well! is simply real that the possibilities in this kind of game are infinite!

And for this mod, the darks really needs a notion of creep (or dark influence) for build their buildings.
Is curious. In the mod, all races builds our buildings. Any of them invoke it, or transform one basic structure into other buildings. Darks can use this kind of build method, or elves. For example, the peasants only plants seeds, and next, you can grow the seeds in to one of their tree based buildings.
hmmmm o-o! Other option for robots, that their major unit dont't be created in any building. It's have been built by the geeks! jajaja!

@:

The summoning sacrifice might be achieved by upgrading a unit to an "effect unit" with eventually a decay.

Dam, it's correct. I forget this option xD.
But currently you can't declare that one skill needs pay with some amount of life, like stinpack of terrans. And, effects that raises (or decreases) some parameter of target. For example, stinpack. lol. paying 10 of life, the unit can decrease its cooldown, and increase its damage for a period of time. Or one fog that drastically reduce the speed of enemies that walk through it.


@:

I won't be able to describe all, but the simulation is in the files that start with "world". Interesting classes are in this list from world.py line 231:

thanks! I going to study it!
but some parts are bvery confuse @-@ Or my programming level is very poor than of you big_smile

@:


A flag for teleportation would be more flexible, since only the Unit class (Soldier, Worker) is teleportable. Teleportability could be changed unit by
unit while having the current defaults provided by the Building and Unit classes.

Thumbs up


hmmm talking about the flags.
It's necessary add to harm_target options the keyword enemy. For create some weak skills thats only affect a units of enemys. And, currently is possible creating custom flags?
For example, one flag  named "Mechanical". And this flags, you can use in targets for skills, upgrades, harms, heals, etc etc.

Respecting the effects, if it has damage, they can't attack to your enemys. But if its  has heal levels, they can heal your units.
if possible creating some common heal effects / units? that heals all units, independently if the unit are ally or enemy. Like arm. That damage ally and enemy units.

Well... other thing, currently one unit, have only one type of attack, and can't differentiate between ground and air attack. For future, this can be implemented. One unit can have different properties for each attack that is has. For example, one unit that can attack adjacent squares, but only air units with x damage. but in the same square it only can attack ground unit with y amount of damage. With this, add to attacks the bonus property. but not a external bonus like a bonus of upgrade, but a bonus that depends of a characteristics of target. With this, using flags. X bonus if the target is a building. Or y bonus if the target is a heavy unit. z bonus if it is a air an light unit, etc.

Hmmm I have to save this document, for future with suggestions for the game xd.

@frastlin

The game have specific keys to select mages or dragons separately. they  are in the manual.

2. Hear what everything does ingame (preferably before I buy it)?

Nop, only if you know previously.


3. Use a menu with the arrow keys to see everything that is in the room (separate land stuff from mob stuff?

nop.
Only exist some different keystrokes to select one or other kind of object in the square.
For example, ctrl+tab to select meadows, forest , goldmines and fast targetable units that have instant effects (transport or need repair). d to select all workers in the square, other keys to select all soldiers in the squares, etc.


4. cycle through all work units who are not assigned?

alt+e to select workers that are lazy. xD

5. hear the focus of the game

any key that does nothing. ctrl.

Also, it would be really cool if one made a story to go along with different units. Also, it may be more clear if the different races could be chosen before
the game starts.

you can choose your race in the lobby of any match. Remember, for best play with multyrace matches, you have to play in the multiplayer menu, or server menu. Don't use the single player options.

@nin:

how can I use chat in the game? thanks for help.

only in the lobby, , non into game.
Press s to write your message, and with f5 you can hear the messages that you received. Press repeatedly for read more than last message


And... mama mia! that post! xd

sorry for this wall of  text xd.

2014-06-18 18:37:05

@sanslash332:

No no, autocast is not ready yet, I was just thinking about how to do it. A unit with an ability in autocast mode would check if using this ability is possible and use it if possible. Some abilities should have a cooldown time, if they have not already (this cooldown would be active in manual mode too). Maybe in some cases an additional timer would be required to avoid too much autocasting. Mana would limit some of the autocasting too.

With the current way special_range works, a small normal range would make no sense with special_range = 1. It would be 0 or anywhere in the square and the neighboring squares, so range >= square size (or, if special_range = 1, the code should just test if range = 0 and avoid testing range in the same square). Anyway it's not an ideal solution, but the continuous, square-less map might require many changes before being good enough. It might be worth the trouble though.

The creep could be a variable of each square. Any zerg can use the creep of another zerg, so it's not linked to a player. If the notion of square is removed it would be managed on a finer scale. Squares are practical as a user interface, I think (not sure, what do you think about these squares? can you do without the current squares?).

Yes, I wasn't thinking about sacrificing HP (like the marine stimpack). This might be interesting and not too difficult to add. Something like hp_cost. I don't remember if a stimpack could kill a unit. It would be very risky for the unit anyway.

The code is not the clearest, in spite of my efforts. Rewriting from scratch is tempting but I'm not even sure that I'll find the right architecture.

Custom flags? I'll think about it.

About armor, I might add a minimal damage of 0.1 for example, so even a peasant can do some damage to a knight. In Warcraft 2 there was "piercing damage" (damage that ignores the armor). Starcraft didn't have armor though.

2014-06-18 20:32:44 (edited by Pragma 2014-06-18 20:35:09)

I have forgot a bug with the units who can convert anywhere on the map. When the target is in a war fog, the unit can launch the conversion, but not immediatly. The unit stays like waiting, and when the target becomes visible, the conversion is activated. This makes the voodoo priest particularly strong.

In fact it seems the war fog causes bugs.

I start thinking about a campaign, but it seems not possible to use TTS for intros or cut scenes. Otherwise, the documentation is old, it speaks of "stream" folder and "sounds" folder, but these folders are not in the last campaign examples. However, I think if TTS is supported for intros and cut scenes, we can already do something interesting.

2014-06-19 13:59:16

This might be the conversion bug that I have been looking for! At least I hope so.

I'll make sure TTS is supported for cut scenes and intros.

2014-06-19 14:11:20

@Pragma: can possession be removed from voodoo priests or its ranged changed so that it can only cast at adjacent squares? The bug makes orcs too powerful, because there's nothing I can do to stop them from having winged serpants get in sight of important buildings and then the voodoo priests possessing it. Anti-air batteries can only delay the eventual conversion of your important buildings, because the priests will just possess those, causing much grief for the victim. If you remove possession, voodoo priests should get a different ability - perhaps something like a thunderbolt that works on buildings? Or a reduction of thunderbolt power in exchange for their mana regenerating?

2014-06-19 17:14:02

I'm just here to say I love this mod, and awesome job big_smile
also, magnetic storm when it works on the right square is great
that is all

"You know nothing of death... allow me to teach you!" Dreadlich Tamsin
Download the latest version of my Bokura no Daibouken 3 guide here.

2014-06-19 18:48:13 (edited by sanslash332 2014-06-19 18:54:26)

This forum has a serious problem with the login's remember function. Every time that I login, I be sure that remember checkbox was checked. But when I return to the forum, I have to re log-in. X_X
And no, I don't delete my kookies. xD

Well, time to quote :V

@soundmud:

No no, autocast is not ready yet, I was just thinking about how to do it. A unit with an ability in autocast mode would check if using this ability is
possible and use it if possible. Some abilities should have a cooldown time, if they have not already (this cooldown would be active in manual mode too).
Maybe in some cases an additional timer would be required to avoid too much autocasting. Mana would limit some of the autocasting too.

Yep, but this is not all conditions for autocast. Is good option try to add to autocast system, some basic triggers.
For example, one unit try to cast its autocast ability, when is in the same square with an enemy, or when a other unit with some condition is next to it... etc, various triggers can be implemented.

@:

The creep could be a variable of each square. Any zerg can use the creep of another zerg, so it's not linked to a player. If the notion of square is removed
it would be managed on a finer scale. Squares are practical as a user interface, I think (not sure, what do you think about these squares? can you do without
the current squares?).

The scare notion for a user interface, specially for this audio game, is very, very good. But in terms of simulation, is really not ideal.
Respecting the terrains, is a hard thing to resolve if the squares are completely removed; will be necessary use more properties for each building, unit, and terrains, specifying the size of each object to try put in the map.
Hmmm one solution, is continue using the notion of squares for this kind of problems (terrains, zones, and spaces) but for moves, distances and range of attacks or skills, directly uses the metrical system.
Currently depends the size of the square for many things can you put in it?
For example how many units can you have in a square of 12 x 12, and in a other square of 50 x 50? And how many units can pass through a path (or bridge) at same time? All paths are of the same size?
Is necessary resolve all of these things to implement a good non squared simulation system.
Well, of course if all of this is changed, the structure of the maps files will be drastically changed, because for a correct map, more things will be necessary specified for each them.
Waaaaaa... Complicate, or non complicate. This is the question big_smile
Respect to the creep notion, hmmm. one flag for says if the meadows of a squares has been infested? Or one custom flag for says it. If you have two different races that want to infested in different wais? xD
Hmm this add one more flag to the buildings (or things in general) make_creep, but the creep will be necessary  covers minimal the current square (small buildings) and including adjacent squares (big buildings).

@:

Yes, I wasn't thinking about sacrificing HP (like the marine stimpack). This might be interesting and not too difficult to add. Something like hp_cost.
I don't remember if a stimpack could kill a unit. It would be very risky for the unit anyway.

Stinpack consumes only 10 hp of each marine, for hmmm some seconds of effect. If you active stinpack various times, the skill consumes 10 hp for each click time that you trigger the skill.
And not sure if you can kill a marine with multiple clicks of the skill. I think if you pressed many times, you only can decrease the hp of marine to 1, and after of this, is impossible active more times the skill. But is not bad option kill the unit for a distracted repeatedly actives of an auto-damaging spells. xD


@:

The code is not the clearest, in spite of my efforts. Rewriting from scratch is tempting but I'm not even sure that I'll find the right architecture.

hmmm, currently the code is fully object oriented? Or have some things of a structured syntax and modular things.

@:

Custom flags? I'll think about it.

o, yes. Is a pretty good idea, for easy classify the units or buildings in many categories. Like tags, for after use in targets, requirements,  bonus, etc.

@:

About armor, I might add a minimal damage of 0.1 for example, so even a peasant can do some damage to a knight. In Warcraft 2 there was "piercing damage"
(damage that ignores the armor). Starcraft didn't have armor though.

starcraft 1 my friend. In sc2 the armor currently exist.
But no, I'm not talking about the armors. I'm talking a bonus damage for a specific cases.
For example, the archers have a regular damage of 4 hp for each shoot (subtracting the armor of the foe, of course). But, against light air opponents (like serpents or small airships) their shoots make a 4 hp damage, plus another 3 extra damages. Look at the units of sc2. For example the zerglings are a light and biological units, while the immortals (a protoss unit) are a mechanical psionic armored unit. The immortals have a massive bonus damage against other armored units, like roaches of zergs, siege tanks of terran, or other immortals. But their damage to the non armored units are pretty poor. Comparing with other less expensive units, of course.

@pragma:

I have forgot a bug with the units who can convert anywhere on the map. When the target is in a war fog, the unit can launch the conversion, but not immediatly.
The unit stays like waiting, and when the target becomes visible, the conversion is activated. This makes the voodoo priest particularly strong.


yep, but if the target moves of the original position, when you have sight of the square and the target of priest  is not there, the skill fails.
The problem is when the target of priest is a expensive unmovable building, like a computers of robots.
I think that option to launch the skill when you not have a full sight of a square are good option, but reduce the range of conversion to nearby squares.

This is not a bug, but... I think that this behavior can change. Currently, in the war fog, you can't detect the invisible unit that was previously discovered. You can only see them if you have a detector, and full sight of these squares.
I think that if you discover a invisible unit with a detector, and after this you leave the square, the units that you discovered should be visible in the war fog, like a normal units. Of course if the unit move of there, you have no idea, like a normal units.
The advantage of this, if you discovers an invisible building, you know where it is, and you not have find it again.

2014-06-20 00:50:05

I have noticed that buildings can be converted. I'm wondering if I should make buildings not convertible by default (even in vanilla SoundRTS), eventually adding an "is_convertible" parameter. Age of Empires is the only game I can think of with convertible buildings.

The automatic bug reports about conversion where caused because the game was trying to convert remembrances of units in the fog of war. I'll try to fix that by causing an "impossible order" signal in this case (when target_range is "anywhere" or maybe even "'nearby" and the target is in the fog of war).

2014-06-20 01:37:14

nods well since you're fixing that up, the orcs definitely need a compensation. They are  probably underpowered now.

I like to sleep, Sleep is good,
This is how I do it: Lie on a nice warm cozy bed, and dream dreams about how to rule the world!
Follow @TheGreatAthlon5 on twitter for humorous facts and game updates!
If you like my posts, thumb me up!

2014-06-20 11:12:05

Maybe we can imagine this is in the ability that we can choose if the buildings are affected. With custom flags, we could ensure that buildings and robots are not affected by hypnosis for example, and we could imagine another ability that captures the buildings.

If it becomes possible to generalize the custom flags, we could manage the strengths and weaknesses more finely. For example, the damages of some units should be magical, and the elementals should be more affected by this kind of damage. For that, it should flags for some parameters, I think the damages and armor, and more general flags for the abilities and effects.

If the possession of the voudou priest will affect just units, I think he will regenerate his mana.

2014-06-20 12:41:28

That sounds reasonable, although it'd be sad to see the ability to convert buildings go entirely. Maybe it should at least be removed from voodoo priests (possession is a mind-based spell, and buildings do not have minds) and robotics (same thing for hypnosis).
I also like the idea of magic damage and more affects to units. This would make for an additional interesting experience.

2014-06-20 15:46:06

@Pragma: OK, I'll think seriously about custom flags. And before implementing it, I'll write in this thread what it would be like. At the moment, first draft:

1. custom flags: every unit or building or effect have a list of flags called "custom_flags" or "attributes". For example:

def tank
flags armored mechanical

Maybe it would be possible to have mechanical and biological. There is a pilot in the tank as opposed to a drone. Not sure.

def tank
flags armored mechanical biological

def drone
flags armored mechanical

2. abilities: for example some_conversion_variant requires a biological target. It would be:

def some_conversion_variant
target_flags biological

Several flags would require all the flags (AND, not OR).

If the target must be biological and must not be armored:

def another_conversion_variant_requiring_contact
target_flags biological
target_immunity armored

Or maybe:

target_flags biological -armored

3. damage: damage is normal by default. So, for example:

def mage
class soldier
damage_type magical

The damage bonus or malus would be defined for a unit or for a unit flag. Not sure. Probably for each unit? For example:

def elemental
damage_modifier magical 2 fire 1.1 ; magical damage x 2, fire damage x 1.1 (+ 10 %)

4. heal and harm auras already have use kind of flags. Maybe these could be united with the custom flags. There is: healable, ground, air, unit, building, undead. Maybe those flags would be provided by default but not strictly required.

def priest
harm_level 1
harm_type sacred

def skeleton
damage_modifier sacred 1

def any_unit_except_undead
damage_modifier sacred 0

Every unit would have to define at least "damage_modifier sacred 0" to be immune?

5. Last example from Civilization 4 (attack works differently, but it's just to check how the rules would be translated):

def warrior
damage_modifier axeman 1.5

def axeman ; + 50% attack against melee unit
damage_type axeman
damage_modifier chariot 2 axeman 1.5

def chariot ; +100% attack against axeman
damage_type chariot
damage_modifier pikeman 2

def pikeman ; +100% vs. mounted units
damage_type pikeman
damage_modifier axeman 1.5

2014-06-20 16:58:13

@SoundMud: its great that you're looking into implementing custom flags. The draft looks fine, though for specifying units/buildings to be immune from an effect, target_immunity for me is the better way to specify it.

When you're working on the next update, can you also look into improving performance for games with many units? It can get quite laggy sometimes, especially when some races like darks use huge numbers of low-cost units as part of their strategy.

2014-06-21 08:34:22

more quotes!

@soundmud:

I have noticed that buildings can be converted. I'm wondering if I should make buildings not convertible by default (even in vanilla SoundRTS), eventually
adding an "is_convertible" parameter. Age of Empires is the only game I can think of with convertible buildings.

nope, remember the infestation Zerg ability, that converts a weak terran command center on a infested command center :V
But I think that the ability of convert buildings is a powerful skill, and very, very interesting form of play.
Of course, is necessary make a method to block it.
@soundmud:

Maybe it would be possible to have mechanical and biological. There is a pilot in the tank as opposed to a drone. Not sure.

is a option, but... na. The tanks just are mechanical and armored (following starcraft 2 guidelines)
But create a unit (like a biological android) is feasible that it have armored, biological and mechanical flags.


@soundmud:

def some_conversion_variant
target_flags biological

why a new command for this?
Simply reuse the current target_type command for add all kinds of flags. Custom and hardcoded.

@soundmud:

Several flags would require all the flags (AND, not OR).

hmmm I suppose that targets needs have at least one flag. or... create a syntax for declare conjunctive and disjunctive target_types. Using the plus (+) simbol
target_types biological+armored (only affects things that have biological and armored flags (or more)) (not only for units, but all things that have these flags. buildings, or... well all things xd)

def another_conversion_variant_requiring_contact
target_flags biological
target_immunity armored

hmmmmmmm. Yep, good idea.

@soundmud:

The damage bonus or malus would be defined for a unit or for a unit flag. Not sure. Probably for each unit? For example:

def elemental
damage_modifier magical 2 fire 1.1 ; magical damage x 2, fire damage x 1.1 (+ 10 %)


hmmm the idea is good, but require smutch and recursive code.
Better idea is simply use a new command named like hmm.
damaje_bonus_to biological 5
The damage of this unit, does 5 more damage if this fights against another thing with a biological flag.

and for the malus (or resistances)
resistance_againstfire  5

The damage provided by a unit with these damage type will be reduced for 5 points. And using some keyword, like full or total, says that unit have a total immunity to that damage type.

With this, if possible, you should implement the capacity of put two types of attack against two different targets, with different properties.
For example, one unit that make 5 damage to other units, without any kind of bonus, but against buildings does 8 damage with a larger cooldown, but have a bonus of 10 to buildings that are biological.
tongue

@soundmud:

Every unit would have to define at least "damage_modifier sacred 0" to be immune?

nop, the harm level only affects the units that have these flags. for example:

def purifing_fire
harm_level 1
harm_type undead demons (the fire only affects undeads, and demons)

and the amount of damage, change the use of levels, for a directly amount of hp per second. If the skill (or harm) needs a bonus against some kind of unit, use the same type of bonus command of the attacks.
as it:

def purifing_fire
harm_dps 2 ; (the fire does 2 damage per second. Yes, its a lot of damage, but is just a example big_smile!)
harm_type enemy undead demons (the fire only affects undeads, and demons that are in the enemy army)
harm_bonus_to demons 5 ; (the damage does by the fire is 5 more points for each second, against the demons units)

and... is all

well thanks for all, guys :3