Jump to content
EleTD.com

Karawasa

Administrators
  • Content Count

    3,886
  • Joined

  • Last visited

Everything posted by Karawasa

  1. Hoping to have this fixed for Beta8.
  2. Karawasa

    electricity towers

    Yes, it is being affected by armor strength now. Armor type too (since it does Light damage).
  3. Interesting analysis Sancdar, this sounds like a positive change overall. The multiplier was changed from 0.05 to 0.06, now the question is should we take it to 0.07?
  4. I'm happy to present to you guys the seventh beta. This beta sees the addition of 3 brand new game modes, along with many important tweaks to the game. Get the beta here: http://www.eletd.com/beta You must use the following info: Username: tester Password: carleton First: In order to play the beta, you must type -carleton before the first round spawns. If you do not do so, the game will end. Make sure to put to good use the -level, -gold, and -lumber commands. Second: The following things are no cause for concern: Nothing, i.e. if it seems wrong report it Third: Things to test: -Try out the three new game modes. Do they bug? What do you think of them? -Test for balance of towers*** -If the creep spawn bug (creeps just stop spawning midway through) appears, please report it* Fourth: Here is the changelog: -Flesh Golem insane growth size fixed (hopefully), attack animation better as well -Reduced clumping while turning corners, and perhaps reduced cluster clumping as well -Improved art/animation values for all creeps, you will see upon your first game the improved visuals -Spew Acid range now 900, as it should have been -Polar/Ice Age projectile speed increased, weird bug hopefully resolved, Frostbite CD doubled -OrbEngine debug message removed -Foundary misspelled and renamed to Foundry -Tower Query improved in terms of timing of displays -Interest timer should have perfect accuracy, negative interest timer at Ronald fixed -Removed the "start next level upon leaking," function -Implemented Short Mode -Implemented Competitive Mode -Implemented Tournament Random -Fixed Ronald leftover after dying or quitting -Periodic Tower changed to fit role better (composite damage dealer) -Elementals can be slowed now, but buffed their HP -Ronald HP nerfed again to 2/3 of current, HP upgrade function implemented based on kills -Vote kick system implemented -Death Towers should be less random, and cause less lag overall -Damage reduction per armor point increased, game slightly harder globally, armor reducers more significant slightly -Electricity and Poison Towers now do physical damage, i.e. affected by armor, numbers of each tweaked to compensate -Removed the -life command, for debugging -AoE of Sludge (Muck Tower) increased from 250 to 375, AoE of tower unchanged -Jinx and Tidal Tower abilities should now be buffed by Fire Up as well (with this, all towers that benefit from Well benefit from Blacksmith too) -Improved all build tower tooltips to include much more information, corrected inaccuracies, and specified which towers ignore armor -Hail Tower redesigned, now working -Quaker Pulverize nerfed from 4000 to 3000 damage -Tidal Splash nerfed from 1200 to 1000, first level and beyond
  5. Updated: //Implementation: *create a point target ability to be detected when cast // *create a unit target ability based off acid bomb, configure that to your liking, with buff // *copy this trigger to your map // *config. and enjoy //Documentation: Buff is applied from the dummy acid bomb ability. scope Deathwave globals //config. options: private constant integer abil_id = 'A01C' //rawcode of ability cast private constant real distance = 1000. //max distance of wave private constant real speed = 15. //speed of travel for wave/.03s private constant real area = 320. //area for effects of wave private constant string sfx = "Abilities\\Spells\\Undead\\CarrionSwarm\\CarrionSwarmMissile.mdl" //model for wave private constant real scale = 1. //scale of the wave model //needed variables: private group Gtemp = null private timer Twave = CreateTimer() private integer Total = 0 private Deathwave_data array structArray private group Gwave = CreateGroup() private unit cast = null endglobals //needed struct struct Deathwave_data unit wave real cos real sin real dist = 0.0 effect sfx group grp endstruct //Get correct ability and/or needed attacks private function Get_Damage takes integer lvl returns real if lvl==1 then return 300. elseif lvl==2 then return 1500. else return 10500. endif endfunction function Trig_Deathwave_Conditions takes nothing returns boolean return GetSpellAbilityId()==abil_id endfunction private function Deathwave_Filter takes nothing returns boolean return not IsUnitInGroup(GetFilterUnit(),Gtemp) and IsUnitEnemy(GetFilterUnit(),bj_groupEnumOwningPlayer)==true and GetWidgetLife(GetFilterUnit())>.405 endfunction private function Deathwave_Effects takes nothing returns nothing local unit u = GetEnumUnit() local integer level = GetUnitAbilityLevel(cast,abil_id) call UnitDamageTarget(cast, u, Get_Damage(level), false, false, ATTACK_TYPE_CHAOS, DAMAGE_TYPE_NORMAL, null) set u = null endfunction private function Deathwave_Move takes nothing returns nothing local integer i = 1 local Deathwave_data dat local real x local real y loop exitwhen i > Total set dat = structArray[i] if dat.dist>distance then call DestroyGroup(dat.grp) call DestroyEffect(dat.sfx) call EndCaster(dat.wave,0) set cast = null call dat.destroy() set structArray[i] = structArray[Total] set Total = Total - 1 set i = i - 1 else set x = GetUnitX(dat.wave) set y = GetUnitY(dat.wave) call SetUnitX(dat.wave,x+speed*dat.cos) call SetUnitY(dat.wave,y+speed*dat.sin) set dat.dist = dat.dist + speed call GroupClear(Gwave) set bj_groupEnumOwningPlayer = GetOwningPlayer(dat.wave) set Gtemp = dat.grp call GroupEnumUnitsInRange(Gwave,x,y,area,Condition(function Deathwave_Filter)) call GroupAddGroup(Gwave,dat.grp) call ForGroup(Gwave,function Deathwave_Effects) endif set i = i + 1 endloop if Total==0 then call PauseTimer(Twave) endif endfunction function Trig_Deathwave_Actions takes nothing returns nothing local unit u = GetTriggerUnit() local location uloc = GetUnitLoc(u) local location l = GetSpellTargetLoc() local real ang = AngleBetweenPoints(uloc,l) local unit wave = GetCaster(GetOwningPlayer(u),GetLocationX(uloc),GetLocationY(uloc),0) local effect f = AddSpecialEffectTarget(sfx,wave,"origin") local Deathwave_data dat = Deathwave_data.create() call SetUnitScale(wave,scale,scale,scale) call SetUnitFacing(wave,ang) set cast = u set dat.wave = wave set dat.cos = Cos(ang * bj_DEGTORAD) set dat.sin = Sin(ang * bj_DEGTORAD) set dat.sfx = f set dat.grp = CreateGroup() set Total = Total + 1 set structArray[Total] = dat if Total==1 then call TimerStart(Twave,.03,true,function Deathwave_Move) endif set u = null call RemoveLocation(uloc) set uloc = null call RemoveLocation(l) set l = null set wave = null set f = null endfunction endscope //==== Init Trigger Deathwave ==== function InitTrig_Deathwave takes nothing returns nothing set gg_trg_Deathwave = CreateTrigger() call TriggerRegisterAnyUnitEventBJ(gg_trg_Deathwave,EVENT_PLAYER_UNIT_SPELL_EFFECT ) call TriggerAddCondition(gg_trg_Deathwave, Condition(function Trig_Deathwave_Conditions)) call TriggerAddAction(gg_trg_Deathwave, function Trig_Deathwave_Actions) endfunction
  6. Have realized that it is not cause for concern, and thus removed the message for next version.
  7. Karawasa

    [Beta 6] Tooltips

    Alright, I will add descriptive information back to the build tower tooltips.
  8. Karawasa

    electricity towers

    Poison and Electricity are getting hit with the balance stick in a special way. They are going to be doing physical damage next version, meaning that their damage won't ignore armor or armor type.
  9. A very important part of the game revolves around the design element. Towers need to be named according to the elements that they are made of, and their model/icon needs to go with their name. To be blunt, towers need to make sense. To that end, I am starting this thread. I would like to hear what you guys think of all this. It would be of great help if you guys could tell me what towers don't make sense to you. Are there towers whose names do not go along with the elements that they are made of? Are there models/icons that don't seem to fit the name? Feel free to provide suggestions, but most importantly, point out what is wrong.
  10. Should target the closest enemy first, like the real chain lightning. As for hitting the same creep twice, that could be interesting. Would it be possible to have that as a configuration option (i.e. true/false that it can hit a creep twice)?
  11. As part of balance, I've decided to try and eliminate armor ignoring spells. Here is my rewrite of the Shockwave spell, so that all it does is damage units. How can I improve/optimize it? //Implementation: *create a point target ability to be detected when cast // *create a unit target ability based off acid bomb, configure that to your liking, with buff // *copy this trigger to your map // *config. and enjoy //Documentation: Buff is applied from the dummy acid bomb ability. scope Shockwave globals //config. options: private constant integer abil_id = 'A001' //rawcode of ability cast private constant real distance = 1000. //max distance of wave private constant real speed = 15. //speed of travel for wave/.03s private constant real area = 250. //area for effects of wave private constant string sfx = "Abilities\\Spells\\NightElf\\EntanglingRoots\\EntanglingRootsTarget.mdl" //model for wave private constant real scale = 2. //scale of the wave model //needed variables: private group Gtemp = null private timer Twave = CreateTimer() private integer Total = 0 private Shockwave_data array structArray private group Gwave = CreateGroup() private integer id endglobals //needed struct struct Shockwave_data integer id unit wave real cos real sin real dist = 0.0 effect sfx group grp endstruct //Get correct ability and/or needed attacks private function Get_Damage takes integer lvl returns integer if lvl == 1 then return 1000 elseif lvl == 2 then return 2000 else return 4000 endif endfunction function Trig_Shockwave_Conditions takes nothing returns boolean return GetSpellAbilityId()==abil_id endfunction private function Shockwave_Filter takes nothing returns boolean return IsUnitInGroup(GetFilterUnit(),Gtemp)==false and IsUnitEnemy(GetFilterUnit(),bj_groupEnumOwningPlayer)==true and GetWidgetLife(GetFilterUnit())>.405 endfunction private function Shockwave_Effects takes nothing returns nothing local unit u = GetEnumUnit() local unit cast = GetTriggerUnit() local integer level = GetUnitAbilityLevel(cast,abil_id) call UnitDamageTarget(cast, u, Get_Damage(level), false, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL, null) set u = null set cast = null endfunction private function Shockwave_Move takes nothing returns nothing local integer i = 1 local Shockwave_data dat local real x local real y loop exitwhen i > Total set dat = structArray[i] if dat.dist>distance then call DestroyGroup(dat.grp) call DestroyEffect(dat.sfx) call EndCaster(dat.wave,0) call dat.destroy() set structArray[i] = structArray[Total] set Total = Total - 1 set i = i - 1 else set x = GetUnitX(dat.wave) set y = GetUnitY(dat.wave) call SetUnitX(dat.wave,x+speed*dat.cos) call SetUnitY(dat.wave,y+speed*dat.sin) set dat.dist = dat.dist + speed call GroupClear(Gwave) set bj_groupEnumOwningPlayer = GetOwningPlayer(dat.wave) set id = dat.id set Gtemp = dat.grp call GroupEnumUnitsInRange(Gwave,x,y,area,Condition(function Shockwave_Filter)) call GroupAddGroup(Gwave,dat.grp) call ForGroup(Gwave,function Shockwave_Effects) endif set i = i + 1 endloop if Total==0 then call PauseTimer(Twave) endif endfunction function Trig_Shockwave_Actions takes nothing returns nothing local unit u = GetTriggerUnit() local location uloc = GetUnitLoc(u) local location l = GetSpellTargetLoc() local real ang = AngleBetweenPoints(uloc,l) local unit wave = GetCaster(GetOwningPlayer(u),GetLocationX(uloc),GetLocationY(uloc),0) local effect f = AddSpecialEffectTarget(sfx,wave,"origin") local Shockwave_data dat = Shockwave_data.create() call SetUnitScale(wave,scale,scale,scale) call SetUnitFacing(wave,ang) set dat.id = GetUnitTypeId(u) set dat.wave = wave set dat.cos = Cos(ang * bj_DEGTORAD) set dat.sin = Sin(ang * bj_DEGTORAD) set dat.sfx = f set dat.grp = CreateGroup() set Total = Total + 1 set structArray[Total] = dat if Total==1 then call TimerStart(Twave,.03,true,function Shockwave_Move) endif set u = null call RemoveLocation(uloc) set uloc = null call RemoveLocation(l) set l = null set wave = null set f = null endfunction endscope //==== Init Trigger Shockwave ==== function InitTrig_Shockwave takes nothing returns nothing set gg_trg_Shockwave = CreateTrigger() call TriggerRegisterAnyUnitEventBJ(gg_trg_Shockwave,EVENT_PLAYER_UNIT_SPELL_EFFECT ) call TriggerAddCondition(gg_trg_Shockwave, Condition(function Trig_Shockwave_Conditions)) call TriggerAddAction(gg_trg_Shockwave, function Trig_Shockwave_Actions) endfunction
  12. They did provide a news announcement, a forum section, and three game rooms. Although in the grand scheme of things none of these things are major, I feel I need to reciprocate something, and this is my way of doing it. It should be edited to remove all references to "support."
  13. Karawasa

    DotA

    Looking to change that soon...
  14. Of course more input is needed, but if Sancdar is right then we need to increase the difficulty a tad bit. Perhaps an increase in the rate of HP growth (again), or modifying the armor tables (i.e. making each point of armor worth more in damage reduction), or both.
  15. For the betterment of the game, armor ignoring spells need to be cut down. To this end, this spell request is here. I would like a triggered Chain Lightning, so that the damage can be physical instead of spell. Here are the parameters: -May hit up to 4 targets (i.e. can bounce up to 3 times) -Has an AoE of 500 (i.e. will bounce if a creep is within 500 range of the struck creep) -Each bounce deals 10% MORE damage -Has 3 levels for the base damage, these should be constant (i.e. no lvl variable in calculating this) Thanks
  16. I know you're busy, and of course there is no rush to finish this guide. But, I would love to see a new version sometime .
  17. After the outstanding success of Round 1, I've decided to put up another heavily visited page for rewording. I've slaved to come up with more content for this page, and have had trouble as you can see. As I'm not providing much direction here, please feel free to ask questions or suggest new content. Download Element Tower Defense: This WarCraft 3 game is 1.89 MB, and is for WarCraft 3 TFT only. As a result, with slower connections it may take awhile for others to download in WarCraft 3. Please help the map by referring people to this site for download if their speed is too slow. Don't forget to check back here for updates. Latest WarCraft 3 Version: Element TD 3.0 Where To Play Element Tower Defense: GG Client GG Client has officially sponsored Element TD. There are three Element TD game rooms available for use on the GG Client WarCraft 3 server. They can be found in the America, Europe, and Philippines lobby on the WarCraft 3 server. IRC Channel An Element TD IRC channel was created sometime ago to help WarCraft 3 players find Element TD games. There are many users, so you should be able to find others interested in playing Element TD. The information is: irc.gamesurge.net 6667 #eletd Warcraft 3 Clan An Element TD clan was formed in WarCraft 3. It is located on the Northrend (Europe) WarCraft 3 server. The clan channel is Clan etd.
  18. Posted, the homepage now feels like it has content, and it certainly does . Great work, thank you for your help. If you want to revise in the future, I'd be happy to update.
  19. Not sure, I'm thinking it is best that it doesn't attack multiple. I'll play around with a few things, but the idea is that it will remain composite damage.
  20. Karawasa

    Cameras?

    Should take all of 5 minutes to implement, if I decide to do it, expect it for Beta7.
  21. Glad to see there is interest in this mode. I will hopefully have something playable by Beta7, and will be curious to see the reaction.
  22. I'm thinking that Periodic will take this role. It will be the only tower (except for basics) that actually deals composite attack damage.
  23. I want to give the new Death Tower a chance. I think it has potential, may just need some tweaking (number of flies, their movespeed/damage, range etc.).
  24. Excellent idea, don't be shy about posting dislikes.
×
×
  • Create New...