Jump to content
EleTD.com

Karawasa

Administrators
  • Content Count

    3,886
  • Joined

  • Last visited

Everything posted by Karawasa

  1. Should be fixed now, please confirm if you can.
  2. I think the jump from 10 to 35 is simply too large (i.e. it doesn't feel right). The numbers do seem low for the triples, but I don't see a way around that. We all know that there are 8 triples compared to 3 duals, so the ability to stack them with a 5 or 6 Element build needs to not be overpowered. Edit: Raising level 2 triple support from 25% to 30% doesn't hurt things much.
  3. I have been playing around with the table, and present my first attempt: Round 1 - Hagle Time Amplified single - 1u Focused single - 1.5u Refined single - 2u Duals - 1.5u/3u/6u Triples - 2u/3u Damage increase for the three super duals: 25/50/200% Damage increase for the eight super triples: 10/25% Result: 4 Element builds - 26.97u damage/gold/second +/- 0.4u 5 Element builds - 32.94u damage/gold/second +/- 0u 6 Element builds - 30.15u damage/gold/second +/- 5.25u Analysis: This distribution of power reduces the explosiveness of support growth (i.e. 275% and 35%). It also makes triples more powerful versus single element towers, while at the same time maintaining the relationship between duals and triples (for the most part). Finally, it significantly reduces the deviation for 4 Elements, in return for marginally increasing the deviation for 6 Elements (thus stabilizing the standard build). The downside is that the builds are not as balanced. 4 Element is still the weakest, followed by 6 Element (interestingly enough). Compared to the values that were produced for the current state of things, this minor imbalance seems acceptable.
  4. Thanks for pointing me in the right direction, how is this: scope IncendiaryRounds globals //Config Options private real Period = 1. private real AOE = 256. private integer Cycles = 5 //needed globals: private real B = 0 private timer Tburn = CreateTimer() private Burn_data array structArray private integer Total = 0 endglobals private function Get_Damage takes unit caster returns real local integer id = GetUnitTypeId(caster) if id=='h007' then // Add all tower checks here for damage, as shown return 100.*B elseif id=='h00T' then return 500.*B elseif id=='h032' then return 2500.*B endif return 0. endfunction //needed struct struct Burn_data integer count = 0 location ground unit attacker method Start_Burn takes unit atkr, location l returns nothing set .attacker = atkr set .ground = l endmethod method Burn_Effects takes nothing returns nothing local real bonus if GetUnitAbilityLevel(.attacker, 'B00A') > 0 then set bonus = 1.25 elseif GetUnitAbilityLevel(.attacker, 'B00J') > 0 then set bonus = 1.5 elseif GetUnitAbilityLevel(.attacker, 'B00K') > 0 then set bonus = 2.0 else set bonus = 1.0 endif set B = bonus call DestroyEffect(AddSpecialEffectLoc("Abilities\\Spells\\Orc\\LiquidFire\\Liquidfire.mdl",.ground)) call DamageEnemiesArea(.attacker,AOE,GetLocationX(.ground),GetLocationY(.ground),Get_ Damage(.attacker),ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL) set .count = .count + 1 endmethod endstruct function Burn_Timer takes nothing returns nothing local integer i = 1 local Burn_data dat loop exitwhen i > Total set dat = structArray[i] if dat.count>=Cycles then call dat.destroy() set structArray[i] = structArray[Total] set Total = Total - 1 set i = i - 1 else call dat.Burn_Effects() endif set i = i + 1 endloop if Total==0 then call PauseTimer(Tburn) endif endfunction function Trig_IncendiaryRounds_Actions takes nothing returns nothing local unit atkr = GetEventDamageSource() local location l = GetUnitLoc(GetTriggerUnit()) local Burn_data dat set dat = Burn_data.create() call dat.Start_Burn(atkr,l) set Total = Total + 1 set structArray[Total] = dat if Total==1 then call TimerStart(Tburn,Period,true,function Burn_Timer) endif set atkr = null set l = null endfunction endscope //=========================================================================== function InitTrig_IncendiaryRounds takes nothing returns nothing call ORBEngine_RegisterOrb(TOWER_GUNPOWDER, function Trig_IncendiaryRounds_Actions, "TOWER_GUNPOWDER: Incendiary Rounds") call ORBEngine_RegisterOrb(TOWER_MORTAR, function Trig_IncendiaryRounds_Actions, "TOWER_MORTAR: Incendiary Rounds") call ORBEngine_RegisterOrb(TOWER_VULCAN, function Trig_IncendiaryRounds_Actions, "TOWER_VULCAN: Incendiary Rounds") endfunction
  5. Having problems making this. Without the integer i controlling the timer, it goes on forever (but works). With the limit, it does not work at all. Here is the code: scope IncendiaryRounds globals //Config Options private real BURN_PERIOD = 1. private real AOE = 256. private integer BURN_CYCLES = 5 //needed globals: private group BURN = CreateGroup() private real B = 0 private unit Cast = null private timer TBurn = CreateTimer() private location Ground = null private integer i endglobals private function Get_Damage takes unit caster returns real local integer id = GetUnitTypeId(caster) if id=='h007' then // Add all tower checks here for damage, as shown return 100.*B elseif id=='h00T' then return 500.*B elseif id=='h032' then return 2500.*B endif return 0. endfunction function Burn_Filter takes nothing returns boolean return IsUnitEnemy(GetFilterUnit(),Player(0))==true and GetWidgetLife(GetFilterUnit())>.405 endfunction function Burn_ForGroup takes nothing returns nothing call UnitDamageTarget(Cast,GetEnumUnit(),Get_Damage(Cast),false,false,ATTACK_TYPE_NOR MAL,DAMAGE_TYPE_NORMAL,null) endfunction function Burn_Timer takes nothing returns nothing set i = i + 1 if i>BURN_CYCLES then call PauseTimer(TBurn) return endif call DestroyEffect(AddSpecialEffectLoc("Abilities\\Spells\\Orc\\LiquidFire\\Liquidfire.mdl",Ground)) call GroupClear(BURN) call GroupEnumUnitsInRange(BURN,GetLocationX(Ground),GetLocationY(Ground),AOE,Conditi on(function Burn_Filter)) call ForGroup(BURN,function Burn_ForGroup) endfunction function Trig_IncendiaryRounds_Actions takes nothing returns nothing local unit atkr = GetEventDamageSource() local real bonus local location l = GetUnitLoc(GetTriggerUnit()) if GetUnitAbilityLevel(atkr, 'B00A') > 0 then set bonus = 1.25 elseif GetUnitAbilityLevel(atkr, 'B00J') > 0 then set bonus = 1.5 elseif GetUnitAbilityLevel(atkr, 'B00K') > 0 then set bonus = 2.0 else set bonus = 1.0 endif set B = bonus set Cast = atkr set Ground = l set i = 0 call TimerStart(TBurn,BURN_PERIOD,true,function Burn_Timer) set atkr = null set l = null endfunction endscope //=========================================================================== function InitTrig_IncendiaryRounds takes nothing returns nothing call ORBEngine_RegisterOrb(TOWER_GUNPOWDER, function Trig_IncendiaryRounds_Actions, "TOWER_GUNPOWDER: Incendiary Rounds") call ORBEngine_RegisterOrb(TOWER_MORTAR, function Trig_IncendiaryRounds_Actions, "TOWER_MORTAR: Incendiary Rounds") call ORBEngine_RegisterOrb(TOWER_VULCAN, function Trig_IncendiaryRounds_Actions, "TOWER_VULCAN: Incendiary Rounds") endfunction
  6. Need a triggered Burning Oil spell (every attack leaves fire on the ground that does DoT to enemies on it, fire goes away after awhile). This is because I need it to be physical and elemental damage (instead of spell).
  7. I can't get it working for some reason. It seems to create the SFX and remove the corpse, but it doesn't damage or push back units. Here is the code: scope CorpseExplosion globals //Config Options private real RADIUS = 768. private real AOE = 512. //needed globals: private group CORPSE = CreateGroup() private group TARGET = CreateGroup() private real B = 0 private unit Cast = null private unit Corp = null endglobals private function Get_Damage takes unit caster returns real local integer id = GetUnitTypeId(caster) if id=='h00C' then // Add all tower checks here for damage, as shown return 500.*B elseif id=='h00P' then return 2500.*B elseif id=='h02T' then return 12500.*B endif return 0. endfunction function Corpse_Filter takes nothing returns boolean return GetUnitState(GetFilterUnit(),UNIT_STATE_LIFE)<=.405 and GetUnitAbilityLevel(GetFilterUnit(),'A00U') == 0 endfunction function Target_Filter takes nothing returns boolean return IsUnitEnemy(GetFilterUnit(),Player(0))==true and GetWidgetLife(GetFilterUnit())>.405 endfunction function Target_ForGroup takes nothing returns nothing call SlideUnitTimed(GetEnumUnit(),1.,.3,7.,ABPXY(GetUnitX(Corp),GetUnitY(Corp),GetUni tX(GetEnumUnit()),GetUnitY(GetEnumUnit())),"Dust.mdx") call UnitDamageTarget(Cast,GetEnumUnit(),Get_Damage(Cast),false,false,ATTACK_TYPE_SIE GE,DAMAGE_TYPE_NORMAL,null) endfunction function Trig_CorpseExplosion_Actions takes nothing returns nothing local unit atkr = GetEventDamageSource() local unit body local real bonus if GetUnitAbilityLevel(atkr, 'B00A') > 0 then set bonus = 1.25 elseif GetUnitAbilityLevel(atkr, 'B00J') > 0 then set bonus = 1.5 elseif GetUnitAbilityLevel(atkr, 'B00K') > 0 then set bonus = 2.0 else set bonus = 1.0 endif set B = bonus set Cast = atkr call GroupClear(CORPSE) call GroupEnumUnitsInRange(CORPSE,GetUnitX(atkr),GetUnitY(atkr),RADIUS,Condition(func tion Corpse_Filter)) set body = GroupPickRandomUnit(CORPSE) set Corp = body call DestroyEffect(AddSpecialEffect("CorpseExplodeFire.mdx",GetUnitX(body),GetUnitY(body))) call GroupClear(TARGET) call GroupEnumUnitsInRange(TARGET,GetUnitX(body),GetUnitY(body),AOE,Condition(functio n Target_Filter)) call ForGroup(TARGET,function Target_ForGroup) call RemoveUnit(body) set atkr = null set body = null endfunction endscope //=========================================================================== function InitTrig_CorpseExplosion takes nothing returns nothing call ORBEngine_RegisterOrb(TOWER_DISEASE, function Trig_CorpseExplosion_Actions, "TOWER_DISEASE: Corpse Explosion") call ORBEngine_RegisterOrb(TOWER_DECAY, function Trig_CorpseExplosion_Actions, "TOWER_DECAY: Corpse Explosion") call ORBEngine_RegisterOrb(TOWER_DEATH, function Trig_CorpseExplosion_Actions, "TOWER_DEATH: Corpse Explosion") endfunction
  8. I know you have already created a corpse explosion ability for WC3C, so this should be an easy request. This should be a passive on a tower. When the tower attacks, it should select the nearest corpse and explode it. Explosion should deal AoE damage, and push units back for a short time (say 1 second). Has 3 levels.
  9. How exactly would Quark autocast? As for Tidal, this is also a problem. Seems like autocast would be a huge waste unless it had a ton of conditions as to when it would cast (i.e. no). Don't feel bad bringing the idea up, never know what will end up working out well.
  10. Nothing wrong with that, you never know what will end up working.
  11. Would replace either Disease or Jinx Tower.
  12. There was a transition time where I was trying to fit the wide ad into the site layout. Do you still have the problem?
  13. It would be single target. Every few seconds it would select the closest corpse (or could be random in area) and explode it. Explosion deals AoE damage, perhaps pushes back units for a second, and could have other effects if need be.
  14. This tower would be a replacement for Trickery Tower. It is one of the three "good," support duals. Tower would have auras that could be purchased or upgraded in some fashion. Auras could include Attack Speed Boost, Attack Damage Boost, and Mana Regeneration Boost. There are a few ways that auras could be acquired and then boosted. Perhaps every level you can put a point in an aura. It could be based on cash spent (and could either boost all towers, or just one). It could also be based on kills, damage, attacks etc.) Thoughts?
  15. Corpse Explosion will explode a corpse, dealing AoE damage from the explosion (and possibly another effect). It may likely be the replacement of either Jinx Tower or Disease Tower. I think it would be an interesting tower to use, requiring good placement and number. Thoughts?
  16. It is 3000*Boost%/Current HP. As an example, with Foundry Tower it would be 6000/Current HP. When you think about it, Well functions in the same way. By doubling attack speed with Waterfall Tower, you are doubling chance to insta-kill...hence this method.
  17. Karawasa

    Spell Bringer bugs

    Lot of work ahead for this mode .
  18. I should point out that the only towers that benefit from Blacksmith beyond simply an attack damage increase are: -Hydro -Laser -Impulse -Jinx -Drowning -Quaker -Tidal All of these towers benefit more from Well than Blacksmith for various reasons. Thus, their abilities get buffed by Blacksmith to compensate.
  19. Karawasa

    Death

    The problem is getting both you and MagicalHacker on at the same time. I think it may be easier for you two to communicate on the forums to start off. I'll ask him to make a post in mod area etc. etc.
  20. Excellent pictures, I see that you have talent in landscape creation. Welcome to the forums.
  21. It doesn't reset after 60 attacks, it just stops gaining after the 60th attack.
  22. @13est: Just compile them in an archive and upload them.
  23. @xSky: Thanks for uploading a few pictures. @Antisun: Looking forward to those pictures. Perhaps compile all of your ETD screenshots into an archive. You can then upload it, providing a lot of pictures without a giant post. @Everyone: The website designer is waiting for images before working on the site. I'd appreciate it if we could get more screenshots in soon.
×
×
  • Create New...