PDA

View Full Version : HoNor Defense - traditional tower defense



Opus_IX
05-27-2011, 08:28 PM
Hey, fellow HoNners! I release to you:

HoNor Defense! (Current Version: v1.3)

NEW SCREENSHOT!
(Edit) Screenshot: Map Overview (http://www.mediafire.com/i/?hzfye3f5v1xceeh)

I got a few things to work and decided to change the map around a bit. Still looks a little plain - But I'm working on that.

Description: This is a more traditional tower defense map with a custom Pollywog Priest to boot. You have 4 different turrets (all a little different than their original counterparts) - Engineer's steam turret, Slither's Toxin Ward, Voodoo Jester's Ward, and Pollywog Priest's Voodoo Ward - in your ability slots.

***V1.0***
HoNor Defense! V1.0 Download Link (http://www.mediafire.com/?m39hczp8btx56ze)

***V1.1***
HoNor Defense! V1.1 Download Link (http://www.mediafire.com/?5siy00p699k4yih)

***V1.2***
HoNor Defense! V1.2 Download Link (http://www.mediafire.com/?qfwl4yojwz0aa23)

***V1.3***
HoNor Defense! V1.3 Download Link (http://www.mediafire.com/?5fy9bkjrer5u7ff)

***NEWS***
Where the Fortification skill is (the 'I' key), that is now your mana source - creep kills go the 'Soul Recombinator', which, when activated, replenish your hero's mana.

Items added! Rune of Speed, Rune of Malice, Rune of Greed - each with 5 upgrades (Ruby Gem, Sapphire Gem, Topaz Gem). Rune of Speed increases turret attack speed, Rune of Malice increases turret crit rate and crit damage, and Rune of Greed gives you more money for creep deaths.

No win condition...yet. But victory seems futile.

Turret specific locations have been implemented!

Towers can now be built! (See new item description)

NEW ITEM: Meteor: Summon a meteor to fall from the sky, dealing massive damage to the area, damage over time to units who walk through it, and a slow to those units

NEW ITEM: Tower: Build a tower at a "target location" for 15 gold.

I am seeking ideas for new items! If you have any ideas, don't hesitate to suggest it!

Thanks for all of your consideration, input, and comments!

Suggestions? Comments? Questions?

Running list of credits (in no particular order):
Oloko
an7hraxjax
Schm0ftie
Reminator
Jordheim

If you feel like you should have been mentioned for any ideas/contributions you have made, I did not intentionally leave you out - you know who you are and I greatly appreciate the time and effort you have made to help me finalize the map. Just PM me and I'll add you to the list!

Dragoneit
05-27-2011, 08:57 PM
Can we get some screen shots?

Dragoneit
05-27-2011, 11:55 PM
The concept seems to be realy nice

steve62742
06-01-2011, 02:28 PM
really good job
but does it really end? :) i am currently in game and after 50 mins i havent lost my midle tower yet,so i think it must have balance issues and it cant be finished right? (yes i really like tower def games)

Reminator
06-02-2011, 04:54 AM
I think you should look at tutorial, so map could select polly and give him battery.
If you dont know how i could change it for you.

AwwDaSea
06-02-2011, 09:47 AM
how do i run this? :\

Opus_IX
06-05-2011, 07:53 PM
steve: I'm working on how to get a "final' creep wave so the game just ends after that. But I'm also considering making a different creep path so that it's shorter (not so many cutbacks) and harder to defend.

Reminator: Good idea, I'll go change that now.

AwwDaSea: just put the file into your heroesofnewerth\game\maps folder, but make sure you load it twice (start a custom game, then disconnect and start it again - seems to work best that way)

Thysios
06-05-2011, 08:05 PM
Will have to try this out when I get home.

GGreenBass
06-05-2011, 09:48 PM
I'll have to try this out when I don't have to wait 5 entire minutes to download the map from the "Anti-Waiting Company :D" <___<

Jordheim
06-06-2011, 11:41 AM
you said one turret per pedestal. Are we only supposed to build turrets on those pedestals, or are they just for increased vision? Let me rephrase: Are we intended to be able to build turrets on any grass or only on top of those pedestals? Another thing (and I don't know if it's possible but), if you want turrets to cost gold, why not just modify the properties of, for example, observer wards, and give them the ability to attack. That way you don't have to worry about the amount of abilities available on a hero, or which hero you choose (supposing there's a permanent "silence" effect, or no heroes have any abilites). You can also assign the last hit value of creeps for this. This would also add the possibility for new towers, or even: If you give turrets an inventory slot, and make the shop range global, you could even have a tower upgrade ability as is the case with monkey -> winged couriers. Recipes for mixed towers could be added this way also. Another thing is the lack of different creeps. I didn't play for too long, but I did see Kongor walking around. Maybe you could add the frogs and lizards you see around the map as creeps for different levels, or even heroes, mobile buildings, etc. What about Fog of war? I'm not saying one way is better or worse, but from my experience, I think every TD i've played didn't have fog of war. Just throwing out thoughts. I don't know anything about scripting or map-making but if you're unsure as to what I mean with some of these, let me know and I'll try to emphasize. Cool map, it's nice to see a TD over here.

ProtoProtoss
06-06-2011, 12:21 PM
Love the concept... pretty sure it will get better in time, so I won't comment on it now, but I like the direction your going with it.

Opus_IX
06-06-2011, 04:28 PM
GGreenBass: LOL, and I'm going to upload the newer version to mediafire next time. Much better - don't know why I didn't do it the first time... =\

Jordheim:
1) I'm working on a "lock" system that only allows you to build turrets on the pedestals, but unsuccessful thus far...And it is supposed to be one turret per pedestal on the pedestal.

2) I also thought about just having the player buy towers (as you suggested) but I wanted a way to regulate which towers were available to the player - but without a restock timer like Ward of Sight. For example, I want a tower to become available at minute 25, and from that point forward, if you have the gold you can buy it (no limit, no restock timer) - with Ward of Sight, you have to wait 3 minutes for the another to be added to the stock, which is what I don't want. But you are correct - there could be a wider range of towers available with upgrades (see Elemental TD).

Instead, I'm thinking about having the player be able to buy auras (non-stacking) that will increase the abilities of their turrets (and I'll have to balance for that too...) - these will have the restock timer like Ward of Sight.

3) As for the FoW, I wanted there to be some element of timing - having to know (or approximately know) where the creeps are at all times becomes tedious if they get past your defenses and enter the fog. (BTW, still working on balancing issues.)

4) As for different kinds of creeps, I'm not yet sure how to go about implementing that (I took a glance at the Elemental TD code, and will probably have to refer to it again when I get around to it), but I want to work out the balancing first to get an idea of what stats the creeps should have to make the game difficult, but not impossible.

****UPDATE****
1) Got the game to skip the hero selection (Credits: Oloko, Schmoftie, and Reminator)
NOTE: Tried to get it to skip the side selection, but the game kicks you for not having chosen a side. Says something like "The host has begun the game without you". Must be something special with the tutorial, dunno. Work on that again later, if it's even possible.

2) NEW DOWNLOAD LINK! Honor Defense! (http://www.mediafire.com/?m39hczp8btx56ze)
I should probably start numbering them...

Issues:
1) Although I got it to skip the hero select screen, it seems the timer got out of whack...something made it error to show 35791:30, instead of the 0:30 it's supposed to show (I set the pregame time to be 30s). Still testing.
2) Had to change the the hero name from Hero_PollywogPriest to Hero_PollywogPriest_Custom - was having issues with the game loading the regular Priest instead. Seems to be fine.
3) Still working on icons - but this is really low on my priorities.

Oloko
06-06-2011, 04:52 PM
To skip the lobby and not get the message about choosing a team, you can simply set the team of the player.

<onaddplayer>
<changeteam entity="target_entity" team="1" />
</onaddplayer>

This will put the player into the Legion team as hes joining the game.

The timer goes crazy like this probably because you are skipping a game phase (lobby or picking screen). I know there is the <setgamephase (http://forums.heroesofnewerth.com/showthread.php?t=218185#setgamephase)/> action you could use, but I never really tested it and I don't know the list of gamephase to use with it.

Jordheim
06-06-2011, 08:11 PM
looks like I'll have to check out elemental TD. As for the restock timers... What if you make a shop appear at minute 25 (for your example) which is the only one to sell these time-unlocked towers (i.e: goblin shop/secret shop)? As for being able to build towers anywhere outside the pedestals, maybe covering the grassy areas entirely with trees could solve that. Line of sight wouldn't be an issue considering your vision comes from a higher level (pedestals) (though now that I think about it, I didn't even try to place towers on the path, so if you're able to do that, the tree idea dies... Unless the units have permanent tree-walking). The only issue I see with multiple shops is the lack of hotkey comfort, though there may very well be very simple solutions to that.

Opus_IX
06-06-2011, 11:34 PM
Oloko - you are a genius! Or I'm an idiot. Probably both. I put those lines in (after a quick reference to the tutorial code, too) and it works perfectly! Goes straight into the game. The timer seems to start independently of when the game actually shows up on your screen, but it's probably just me and my old computer. For the curious: My timer starts at 0:24. But it's only a minor nuisance. I'll deal with that later.

Well, I took a look at both the Elemental TD and Enfo's Team Survival spawner codes - Is that, seriously, the only way to get a varied creep spawn?!? So crazy...

Anyway, goals for next map update, not necessarily in this order:
1) Turret enhancement buffs
2) Turret specific locations
3) Win condition - yeah, I know, most important part - but you can always just place all your turrets around the enemy base! Right now, that's the only way to do it - I ahve it so that creeps stop spawning after an hour. Really, who's going to play this for longer just watching their towers just completely destroy the creeps?
4) Possible path rework...but if I do this, I'll probably just end up copy/pasting the creep wave spawner code from Enfo's map (with my own creeps, of course!). Hopefully, there will be a better way to get different kinds of creeps by the time I get to this, if ever...

Thanks for all of your input and consideration thus far! Hopefully I'll have a newer version out by the end of this week (no promises, though).

By any chance, does anyone know how exactly the creeps turn into super creeps upon their respective type of rax being destroyed, and if it's possible to change that condition?

Oloko
06-07-2011, 06:43 AM
Yea the creep spawner is a real pain. My script is generated with Java. I only have to set the number of waves and Java will generate me all the lines, so if you want I can generate you a file for the number of waves you need. You still need to create every "creep" entity for each wave.

AS for the super creeps, each creep spawner as value set in its targets param. I don't remember the exact order of the param, but there is one param that is set to the other team raxs. If the targeted raxs are destroyed, that spawner will spawn super creeps. I think that its hard coded, so you can't change it. If you make your own spawners, you don't really need to worry about this since you don't actually make "creeps".

Schm0ftie
06-07-2011, 08:06 AM
the "target #3" is for the targeted spawn which have to be "destroyed" to get super creeps.

Example of Caldavar:

<entity angles="0.0000 0.0000 0.0000" index="5410" model="/tools/m.mdf" name="good_creep1" position="1792.0000 3968.0000 128.0000" scale="0.6800" seed="0" skin="default" target0="good_wypt_1_1" target1="good_melee1" target2="good_ranged1" target3="bad_creep1" team="1" type="Entity_CreepSpawner"></entity>

an7hraxjax
06-08-2011, 05:04 PM
Oh a new download link, thanks :)
I like your map ! It's far from finished but, it looks promising.

The textures of the turrets are broken (white). The reason is that you wrote

icon="heroes/pollywogpriest/icons/hero.tga"And it should be

icon="/heroes/pollywogpriest/icons/hero.tga"This if the path starts with /, it's absolute and start in the main resources folder. Without the /, the path starts in the current folder of the entity file.
It's not needed to include all the sounds, models and textures then.

Some tips :

hero.entity

<?xml version="1.0" encoding="UTF-8"?>
<hero
name="Hero_PollywogPriest_Custom"

team="Legion"
icon="/heroes/pollywogpriest/icons/hero.tga"
portrait="/heroes/pollywogpriest/icons/hero.tga"
model="/heroes/pollywogpriest/model.mdf"
skin=""

passiveeffect=""
spawneffect=""
respawneffect="/shared/effects/respawn.effect"
selectedsound="/heroes/pollywogpriest/sounds/voice/select_%.wav"
selectedflavorsound="/heroes/pollywogpriest/sounds/voice/select_flavour_%.wav"
confirmmovesound="/heroes/pollywogpriest/sounds/voice/move_%.wav"
confirmattacksound="/heroes/pollywogpriest/sounds/voice/attack_%.wav"
nomanasound="/heroes/pollywogpriest/sounds/voice/no_mana.wav"
cooldownsound="/heroes/pollywogpriest/sounds/voice/cooldown.wav"
announcersound="/heroes/pollywogpriest/sounds/voice/hero_select.wav"
tauntedsound="/heroes/pollywogpriest/sounds/voice/taunt_prior.wav"
tauntkillsound="/heroes/pollywogpriest/sounds/voice/taunt_after.wav"

preglobalscale="1.53"
modelscale="1.0"
effectscale="0.9"
boundsheight="112"
boundsradius="24"
selectionradius="44"
targetoffset="0 0 64"

movespeed="0"
turnrate="450"
turnsmoothing="0.05"
ismobile="false"
canrotate="true"

maxhealth="150"
healthregen="0"
maxmana="120"
manaregen="0"

armor="0.0"
magicarmor="5.5"

inventory0="Ability_PollywogPriest_Custom1"
inventory1="Ability_PollywogPriest_Custom2"
inventory2="Ability_PollywogPriest_Custom3"
inventory3="Ability_PollywogPriest_Custom4"
inventory4=""
inventory5=""
inventory6=""
inventory7=""
inventory8="Ability_Taunt"

attackduration="0"
attackactiontime="0"
attackcooldown="0"
attackdamagemin="0"
attackdamagemax="0"
attacknumanims="2"
attackoffset="0 80 30"
attackprojectile="Projectile_PollywogPriest_CustomAttack"
attackrange="0"
attackstarteffect=""
attackactioneffect="/heroes/pollywogpriest/projectile/effects/attack.effect"
attackimpacteffect=""
attacktype="ranged"
combattype="Hero"

nothreat="true"
aggrorange="0"
sightrangeday="1200"
sightrangenight="1200"
wanderrange="0"

corpsetime="3300"
corpsefadetime="3000"
corpsefadeeffect="/shared/effects/corpse_sink.effect"

primaryattribute="Intelligence"
strength="0"
strengthperlevel="0"
agility="0"
agilityperlevel="0"
intelligence="0"
intelligenceperlevel="0"
>
<recommendeditem name="Item_SpecialBattery" />
<!-- once is enough -->
</hero>Putting turrets : you only need these files
- ability.entity (that spawns the turrets)
- gadget.entity
(- state.entity , if you want to apply a slow)
(- projectile, if you want to use a NEW projectile that is not in the game yet)
- deny_ability.entity (you need only one. you can use param to return a custom value of mana)

You can delete all the models, sounds and effects.
Beware of the references of the icons and effects !


ability.entity


<?xml version="1.0" encoding="UTF-8"?>
<ability
name="Ability_PollywogPriest_Custom1"
icon="/heroes/engineer/ability_02/icon.tga"
anim="ability_2"
casttime="1000"
castactiontime="200"
actiontype="target_position"
casteffecttype="SuperiorMagic"
maxlevel="7"
requiredlevel="1,2,3,4,5,6,7"
manacost="16,19,22,25,28,31,34"
cooldowntime="1000"
range="999999"
>
<onimpact>
<spawnunit name="Gadget_PollywogPriest_Ability01" count="1" target="target_position" />
</onimpact>

</ability>Note :
I suggest you put some dummy units in the cliff-towers, and use target_entity instead of target_position. Think of gemcraft style.
You target the dummy tower entity, which transforms in the tower of your will.

The gadget.entity
Note the references to the original models/icons !
You changed the projectile, so you need an entity for that too.

<?xml version="1.0" encoding="UTF-8"?>
<gadget
name="Gadget_PollywogPriest_Ability01"

icon="/heroes/engineer/ability_02/icon.tga"
portrait="/heroes/engineer/ability_02/icon.tga"
model="/heroes/engineer/ability_02/effects/top/model.mdf"
skin=""

passiveeffect="/heroes/engineer/ability_02/effects/base.effect"
spawneffect="/heroes/engineer/ability_02/effects/impact.effect"
respawneffect=""
selectsound=""
orderconfirmedsound=""

preglobalscale="1.6"
modelscale="1.0"
effectscale="1.0"
boundsheight="64"
boundsradius="16"
selectionradius="40"
targetoffset="0 0 64"

blocking="true"

movespeed="0"
ismobile="false"
canrotate="true"
turnrate="450"
turnsmoothing="0.1"
isselectable="true"

maxhealth="150"
healthregen="0"
maxmana="0"
manaregen="0"

cancarryitems="false"

inventory0="Ability_GadgetTurret1"

nothreat="true"

armor="0"
magicarmor="0"
immunity="GadgetImmunity"
canattack="true"


attackduration="200"
attackactiontime="100"
attackcooldown="100"
attackdamagemin="4,5,6,7,8,9,10"
attackdamagemax="4,5,6,7,8,9,10"
attacknumanims="1"
attackoffset="0 0 135"
attackprojectile="Projectile_PollywogPriest_Ability01_Attack"
attackrange="1000"
attackstarteffect=""
attackactioneffect=""
attackimpacteffect=""
attackeffecttype=""
attacktype="ranged"
combattype="Ranged"
attacktargetscheme="enemy_objects"

aggrorange="1000"
sightrangeday="1000"
sightrangenight="1000"

continuousmodifiers="true"
lifetime=""
relayexperience="true"
>
</gadget>projectile

<?xml version="1.0" encoding="UTF-8"?>
<projectile
name="Projectile_PollywogPriest_Ability01_Attack"

speed="1500"
gravity="0"

modelscale=".3"
model="/heroes/engineer/ability_02/effects/bullet/bullet.mdf"

traileffect="/heroes/engineer/ability_02/effects/bullet/trail.effect"
impacteffect=""
>
</projectile>

I must say, i really liked the machine gun, and the current available stuff, so keep it going :)
Also, custom creepspawners is the way to go :)
When the number of waves is growing a lot, I recommend using java or python to generate the code !

good luck

PandaKiller
06-08-2011, 06:37 PM
thx you nice map
3996 creeps and i end it

Opus_IX
06-08-2011, 09:19 PM
an7hraxjax: Yeah, I figured the problem was with the directory paths, just wasn't sure about what, exactly, the problem was. I looked up the problem a while back (it was explained in another thread), but, for some reason, it didn't click with me as immediately as your explanation does. Makes SOOOOO much more sense now! :) I'll definitely try out the 'gemcraft' style tower idea - I've kind of got an idea of how I might be able to achieve that...

***UPDATE***
1) Thanks to an7hraxjax's explanation, the icons are fixed! YEAH!
2) I've added three items, each with 5 upgrades: Rune of Speed, Rune of Malice, and Rune of Greed. They each have a gem that can upgrade their respective runes - Ruby Gems, Sapphire Gems, Topaz Gems (Speaking of gems, did anyone make a Diablo map yet? I want to make a Neverwinter Nights map, too =P). Any idea for other buffs/debuffs?

But sadly, these have no icons...yet.

The items seem to be working okay (I haven't caught any bugs yet), but I want to fix the effects file for the turret so that it doesn't spawn the effect at the end of the turret barrel, and make it look more like the others.

Also, the Greed 'buff' targets creeps - I couldn't get it to work with the goldbountymultiplier command while targeting my turrets. It works the way it is (I almost kind of like it) but I think it would put a lot of strain in the late game when there are tons of creeps in the game/on the screen.

3) I changed the 'Fortification of Sol' to the 'Soul Recombinator' - This is now your mana source for fallen enemy creeps. It frees up an inventory space for other, yet to be made, items.

Yeah, I know - I'm still missing a win condition. I'll get to that...as soon as I figure out how I want to implement it.
Translation: As soon as I figure out how to do it.

In any case, here it is! Version 1.1!
I'll update the DL link from the first post, too.

HoNor Defense! Version 1.1 (http://www.mediafire.com/?5siy00p699k4yih)

an7hraxjax
06-09-2011, 05:32 AM
nice to see it's working :).

Why do you have to click battery to refill actually ? i don't get that very well.
It can be done at once no?

One more thing : when you sell a turret, you don't get any mana refund ? That is a bit weird. You can use <givemana target="this_spawner_entity" a="1" b="param" op="mult"/> to return mana to pollywog. (param is not needed, but it allows to set a variable amount)

Opus_IX
06-11-2011, 05:24 PM
an7hraxjaxI don't know why, but I don't think I am going to implement mana refunds. But if I do, I'll keep it in mind :)

***Version 1.2!***
HoNor Defese! v1.2 Download Link (http://www.mediafire.com/?qfwl4yojwz0aa23)

Changes:
1) Turret specific locales
2) Changed the ultimate ward attack to have AoE effects, and it deals additional damage to the first target after level 1

Coming soon:
1) additional items!
2) fixed icons!
3) Win condition... (yeah yeah, I know, I know...)

Opus_IX
06-14-2011, 12:19 AM
***Version 1.3!***
HoNor Defense! v1.3 Download Link (http://www.mediafire.com/?5fy9bkjrer5u7ff)

Changes:
1) MAP LAYOUT CHANGE - screenshot: Screenshot (http://www.mediafire.com/i/?hzfye3f5v1xceeh)

2) Tower specific locations and tower build capability! (still cleaning it up though...)

3) New items: Meteor and Tower (still finalizing, but usable)

4) MOST icons should be fixed...

Still to come:
1) Win condition (Just summon a meteor in the enemy base for now... :\ )
2) Additional items
3) Updated descriptions

an7hraxjax
06-14-2011, 04:48 AM
<3 the new layout ! now the slow towers are useful at least :)
Maybe you should use a java script to write the entitylist manually, so you can arrange the wards nicely.

Also, i suggest you start with a few pedestals in your inventory, and no initial pedestals on the map. That way you can start the way you want, and you don't have to search where the pedestals are on the map.
If you look in some building.entity, you can find a way to change the minimap icon + size of the the pedestals. Now it's a bit hard to retrieve the empty pedestals.

Next thing on you list is custom (read : tougher and bigger) creepwaves ? :) I request a parade with the new courier models ^^

IamKongor
06-14-2011, 10:45 AM
Hehe nice updates, played the first version you realeased and already loved it :)
This is one of the few custom maps that is also great fun when you play it solo or if chat servers are down :> keep working on it! great map so far