Unit Ideas

vonDarkmoor

New Member
Reaction score
9
I am not sure if this is the correct forum for this thread, or if it should go into the projects forum, sorry if its the wrong one.

Ive started working on a map im possibly calling "Squad Wars" maybe "Squad Defense". Not sure yet, give me your ideas after the description:

10 Players. Each with a Lane (kinda like in Line Tower Wars) and a base area just below their Lane. The player will have several shops in their base they can use to buy units, upgrades, abilities, and items. The squads will have a max of 5-6 units. every so often all the players squads will be moved from their respective bases to the bottom of their lane, a computer controlled squad will be spawned at the top of each lane. Each player will then use their squad to be the first person to kill the opposing squad. The 1st person to kill all units in the opposing squad will receive a "point" first player to 25(?) points will win. then all player will immediately go back to their base and have 30(?) seconds. until the next level. Periodically throughout the game 2 random player squads will be pitted against each other in a PvP squad duel. the winner will receive a bonus.

Things im looking for help on:
Unit types
Abilities
upgrades (other than obvious dmg/armor)
items
# of points to win
time between levels
already made custom models

Thanks a lot for any suggestions

Check out the map upload for a better picture of what it will look like.

also: Before you comment on my map layout ... i know ... but frankly, i have an OCD with symmetry and im in the military ... i just cant help it. all my maps end up symmetrical with sharp clean edges, no bumps. be glad i finally stopped turning off the "random variation" feature for terrain tiles. lol you should see the grass in my earlier maps, they were all the same tile.
 

Attachments

  • Squads.w3x
    34.2 KB · Views: 156

TomTTT

New Member
Reaction score
44
You can make number of votes to win chosen by the players. I dont really know how you can make a vote but you can make that only the host could say -pointsXX and then set your goal (Real or an Integer Variable?) to entered chat string 8,9. Upgrades.. umm.. maybe each attack have a chance to stun? not sure about that. :p
And i do think that you should post this on Projects. Not sure also :) GL with the map anyways. :thup:
 

vonDarkmoor

New Member
Reaction score
9
I Definitely like the idea of the players voting on how many points to win. Im thinkin a dialog box for each player with different choices, then a trigger comparing how many votes each option got, and if there was a tie, opening another dialog box with the options that tied, if there is another tie, then the amount will be randomly chosen. Im startin to think that this should be moved to the projects forum ... if anyone out there can do this? i dont think i can, and if i can i dont know how.
 

Cheddar

This is the way it was meant to be.
Reaction score
126
Are the players able to interact with each other in any way? Like, buy items that send powerful units other players, or heal the enemies' squads?

I always enjoy interesting ways to hinder players, usually through the use of Cinematic effects (There's a particularly nice action that fades a screen into a tiny scope, look around for it), and seeing as how the game is based around competing with everyone, it may be useful.

If you have no "Hero" system yet, I suggest using Heroes to provide special passive benefits -- perhaps give each player a random set of 3 possible heroes out of a large pool, each with their own abilities, and have them choose which one they think will be the most useful? Passive abilities like "When you kill a creep, gives an X% chance to send that creep at all opposing players" or "Increases gold income" or something. Bigger pool, the better.
 

TomTTT

New Member
Reaction score
44
I Definitely like the idea of the players voting on how many points to win. Im thinkin a dialog box for each player with different choices, then a trigger comparing how many votes each option got, and if there was a tie, opening another dialog box with the options that tied, if there is another tie, then the amount will be randomly chosen. Im startin to think that this should be moved to the projects forum ... if anyone out there can do this? i dont think i can, and if i can i dont know how.

Got it! :) i tried and did a test so.. there it is: sorry if it's a bit clumsy, cause im really not good at this for each Integer A stuff so it's in 3 triggers...
Trigger:
  • Start vote
    • Events
      • Time - Elapsed game time is 0.10 seconds
    • Conditions
    • Actions
      • Set inGamePlayers = (All players matching (((Player 1 (Red) controller) Equal to User) and ((Player 1 (Red) slot status) Equal to Is playing)))
      • Dialog - Change the title of goalDialog to Vote - Goal
      • Dialog - Create a dialog button for goalDialog labelled 15 Points
      • Set dialogButton[1] = (Last created dialog Button)
      • Dialog - Create a dialog button for goalDialog labelled 25 Points
      • Set dialogButton[2] = (Last created dialog Button)
      • Dialog - Create a dialog button for goalDialog labelled 35 Points
      • Set dialogButton[3] = (Last created dialog Button)
      • Player Group - Pick every player in inGamePlayers and do (Actions)
        • Loop - Actions
          • Dialog - Show goalDialog for (Picked player)
    • Count Votes
      • Events
        • Dialog - A dialog button is clicked for goalDialog
      • Conditions
      • Actions
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • (Clicked dialog button) Equal to dialogButton[1]
          • Then - Actions
            • Dialog - Hide goalDialog for (Triggering player)
            • Set voteInt[1] = (voteInt[1] + 1)
            • Player Group - Add (Triggering player) to votedPlayers
          • Else - Actions
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • (Clicked dialog button) Equal to dialogButton[2]
              • Then - Actions
                • Dialog - Hide goalDialog for (Triggering player)
                • Set voteInt[2] = (voteInt[2] + 1)
                • Player Group - Add (Triggering player) to votedPlayers
              • Else - Actions
                • Dialog - Hide goalDialog for (Triggering player)
                • Set voteInt[3] = (voteInt[3] + 1)
                • Player Group - Add (Triggering player) to votedPlayers
    • Set Goal
      • Events
        • Time - Every 2.00 seconds of game time
      • Conditions
        • (Number of players in votedPlayers) Equal to (Number of players in inGamePlayers)
      • Actions
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • voteInt[1] Greater than voteInt[2]
          • Then - Actions
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • voteInt[1] Greater than voteInt[3]
              • Then - Actions
                • Set goalInt = 15
              • Else - Actions
                • Do nothing
          • Else - Actions
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • goalInt Greater than voteInt[3]
              • Then - Actions
                • Set goalInt = 25
              • Else - Actions
                • Set goalInt = 35
        • Floating Text - Create floating text that reads (String(goalInt)) at (Center of (Playable map area)) with Z offset 0.00, using font size 50.00, color (100.00%, 100.00%, 100.00%), and 70.00% transparency
 

vonDarkmoor

New Member
Reaction score
9
I like it, couple things though. the line:

Trigger:
  • Set inGamePlayers = (All players matching (((Player 1 (Red) controller) Equal to User) and ((Player 1 (Red) slot status) Equal to Is playing)))


it seems to me this would make inGamePlayers = the player 1. i think there needs to be

Pick all players matching (matching player is playing equal to true)
set ingameplayers = picked player
set numberofplayers= count(players in ingameplayers)

then whenever a player presses a dialog button add 1 to dialogcounter_int and when dialogcounter_int = numberofplayers, then run a check to see wich option won, could also do a tie check at this point.


Also, good idea with the ability to mess with the other players, definitely gonna do that.

As for the hero, maybe i could incorporate something like a Squad Leader. with said abilities.
 

TomTTT

New Member
Reaction score
44
I like it, couple things though. the line:

Trigger:
  • Set inGamePlayers = (All players matching (((Player 1 (Red) controller) Equal to User) and ((Player 1 (Red) slot status) Equal to Is playing)))


it seems to me this would make inGamePlayers = the player 1. i think there needs to be

Pick all players matching (matching player is playing equal to true)
set ingameplayers = picked player
set numberofplayers= count(players in ingameplayers)

then whenever a player presses a dialog button add 1 to dialogcounter_int and when dialogcounter_int = numberofplayers, then run a check to see wich option won, could also do a tie check at this point.


Also, good idea with the ability to mess with the other players, definitely gonna do that.

As for the hero, maybe i could incorporate something like a Squad Leader. with said abilities.

oh crappy. xD sorry for that... but you know what i mean instead of Player 1 Red it's matching. Now about what you said with the check... As i said, im no expert. Personaly i dont think this is gonna bug cause i tested it as you can see from the line with the Floating text and it worked. :)
 

vonDarkmoor

New Member
Reaction score
9
What would happen in your system if there are 6 players, and 3 vote for 25 and 3 vote for 35?
____________________________________________________________________________________________________________________________________
____________________________________________________________________________________________________________________________________

OK this is what i came up with for a dialog box voting system. It recognizes ties, and cast a re-vote offering only the options that tied, if there is a second tie, it will take all options that were tied, and average the choices together making a new choice as the value set. I have no way of testing this information via multiplayer, so please let me know if yall see anything in the code that would bug, or if it can be done any simpler/efficient. it works single player :)

Player_Group is a variable I added to counter the event that a player leaves right after voting. but before they re-vote.

Initial Dialog Box:
Trigger:
  • Dialog box
    • Events
      • Time - Elapsed game time is 0.05 seconds
    • Conditions
    • Actions
      • Dialog - Create a dialog button for Points_Dialog labelled |c0020c00015 Points...
      • Set Points_Button_15 = (Last created dialog Button)
      • Dialog - Create a dialog button for Points_Dialog labelled |c00fffc0125 Points...
      • Set Points_Button_25 = (Last created dialog Button)
      • Dialog - Create a dialog button for Points_Dialog labelled |c00ff030335 Points...
      • Set Points_Button_35 = (Last created dialog Button)
      • Dialog - Change the title of Points_Dialog to |c00ff8000 Vote...
      • Player Group - Pick every player in (All players matching ((((Matching player) slot status) Equal to Is playing) and (((Matching player) controller) Equal to User))) and do (Actions)
        • Loop - Actions
          • Player Group - Add (Picked player) to Player_Group
          • Dialog - Show Points_Dialog for (Picked player)


The button Presses:
Trigger:
  • Pick 15
    • Events
      • Dialog - A dialog button is clicked for Points_Dialog
    • Conditions
      • (Clicked dialog button) Equal to Points_Button_15
    • Actions
      • Set Pick_15 = (Pick_15 + 1)

Trigger:
  • Pick 25
    • Events
      • Dialog - A dialog button is clicked for Points_Dialog
    • Conditions
      • (Clicked dialog button) Equal to Points_Button_25
    • Actions
      • Set Pick_25 = (Pick_25 + 1)

Trigger:
  • Pick 35
    • Events
      • Dialog - A dialog button is clicked for Points_Dialog
    • Conditions
      • (Clicked dialog button) Equal to Points_Button_35
    • Actions
      • Set Pick_35 = (Pick_35 + 1)


Checking the results:
Trigger:
  • Check Results
    • Events
      • Dialog - A dialog button is clicked for Points_Dialog
    • Conditions
      • (Pick_15 + (Pick_25 + Pick_35)) Equal to (Number of players in Player_Group)
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Pick_15 Greater than Pick_25) and (Pick_15 Greater than Pick_35)
        • Then - Actions
          • Set Points_Needed = 15
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Pick_25 Greater than Pick_15) and (Pick_25 Greater than Pick_35)
            • Then - Actions
              • Set Points_Needed = 25
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Pick_35 Greater than Pick_25) and (Pick_35 Greater than Pick_15)
                • Then - Actions
                  • Set Points_Needed = 35
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Tied_Before Equal to True
                    • Then - Actions
                      • For each (Integer A) from 1 to 3, do (Set Points_Needed = (Points_Needed + Tie_Breaker[(Integer A)]))
                      • Set Points_Needed = (Points_Needed / Divisor)
                    • Else - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Pick_15 Equal to Pick_25) and (Pick_15 Equal to Pick_35)
                        • Then - Actions
                          • Player Group - Pick every player in Player_Group and do (Player Group - Remove (Picked player) from Player_Group)
                          • Set Tied_Before = True
                          • Set Tie_Breaker[1] = 15
                          • Set Tie_Breaker[2] = 25
                          • Set Tie_Breaker[3] = 35
                          • Set Divisor = 3
                          • Dialog - Clear Points_Dialog
                          • Dialog - Create a dialog button for Points_Dialog labelled |c0020c00015 Points...
                          • Set Points_Button_15 = (Last created dialog Button)
                          • Dialog - Create a dialog button for Points_Dialog labelled |c00fffc0125 Points...
                          • Set Points_Button_25 = (Last created dialog Button)
                          • Dialog - Create a dialog button for Points_Dialog labelled |c00ff030335 Points...
                          • Set Points_Button_35 = (Last created dialog Button)
                          • Dialog - Change the title of Points_Dialog to |c00ff8000There was...
                          • Player Group - Pick every player in (All players matching ((((Matching player) slot status) Equal to Is playing) and (((Matching player) controller) Equal to User))) and do (Actions)
                            • Loop - Actions
                              • Dialog - Show Points_Dialog for (Picked player)
                              • Player Group - Add (Picked player) to Player_Group
                        • Else - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (Pick_15 Equal to Pick_25) and (Pick_15 Not equal to Pick_35)
                            • Then - Actions
                              • Player Group - Pick every player in Player_Group and do (Player Group - Remove (Picked player) from Player_Group)
                              • Set Tied_Before = True
                              • Set Tie_Breaker[1] = 15
                              • Set Tie_Breaker[2] = 25
                              • Set Tie_Breaker[3] = 0
                              • Set Divisor = 2
                              • Dialog - Clear Points_Dialog
                              • Dialog - Create a dialog button for Points_Dialog labelled |c0020c00015 Points...
                              • Set Points_Button_15 = (Last created dialog Button)
                              • Dialog - Create a dialog button for Points_Dialog labelled |c00fffc0125 Points...
                              • Set Points_Button_25 = (Last created dialog Button)
                              • Dialog - Create a dialog button for Points_Dialog labelled |c00ff030335 Points...
                              • Set Points_Button_35 = (Last created dialog Button)
                              • Dialog - Change the title of Points_Dialog to |c00ff8000There was...
                              • Player Group - Pick every player in (All players matching ((((Matching player) slot status) Equal to Is playing) and (((Matching player) controller) Equal to User))) and do (Actions)
                                • Loop - Actions
                                  • Dialog - Show Points_Dialog for (Picked player)
                                  • Player Group - Add (Picked player) to Player_Group
                            • Else - Actions
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • (Pick_15 Equal to Pick_35) and (Pick_15 Not equal to Pick_25)
                                • Then - Actions
                                  • Player Group - Pick every player in Player_Group and do (Player Group - Remove (Picked player) from Player_Group)
                                  • Set Tied_Before = True
                                  • Set Tie_Breaker[1] = 15
                                  • Set Tie_Breaker[2] = 0
                                  • Set Tie_Breaker[3] = 35
                                  • Set Divisor = 2
                                  • Dialog - Clear Points_Dialog
                                  • Dialog - Create a dialog button for Points_Dialog labelled |c0020c00015 Points...
                                  • Set Points_Button_15 = (Last created dialog Button)
                                  • Dialog - Create a dialog button for Points_Dialog labelled |c00fffc0125 Points...
                                  • Set Points_Button_25 = (Last created dialog Button)
                                  • Dialog - Create a dialog button for Points_Dialog labelled |c00ff030335 Points...
                                  • Set Points_Button_35 = (Last created dialog Button)
                                  • Dialog - Change the title of Points_Dialog to |c00ff8000There was...
                                  • Player Group - Pick every player in (All players matching ((((Matching player) slot status) Equal to Is playing) and (((Matching player) controller) Equal to User))) and do (Actions)
                                    • Loop - Actions
                                      • Dialog - Show Points_Dialog for (Picked player)
                                      • Player Group - Add (Picked player) to Player_Group
                                • Else - Actions
                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    • If - Conditions
                                      • (Pick_25 Equal to Pick_35) and (Pick_25 Not equal to Pick_15)
                                    • Then - Actions
                                      • Player Group - Pick every player in Player_Group and do (Player Group - Remove (Picked player) from Player_Group)
                                      • Set Tied_Before = True
                                      • Set Tie_Breaker[1] = 0
                                      • Set Tie_Breaker[2] = 25
                                      • Set Tie_Breaker[3] = 35
                                      • Set Divisor = 2
                                      • Dialog - Clear Points_Dialog
                                      • Dialog - Create a dialog button for Points_Dialog labelled |c0020c00015 Points...
                                      • Set Points_Button_15 = (Last created dialog Button)
                                      • Dialog - Create a dialog button for Points_Dialog labelled |c00fffc0125 Points...
                                      • Set Points_Button_25 = (Last created dialog Button)
                                      • Dialog - Create a dialog button for Points_Dialog labelled |c00ff030335 Points...
                                      • Set Points_Button_35 = (Last created dialog Button)
                                      • Dialog - Change the title of Points_Dialog to |c00ff8000There was...
                                      • Player Group - Pick every player in (All players matching ((((Matching player) slot status) Equal to Is playing) and (((Matching player) controller) Equal to User))) and do (Actions)
                                        • Loop - Actions
                                          • Dialog - Show Points_Dialog for (Picked player)
                                          • Player Group - Add (Picked player) to Player_Group
                                    • Else - Actions
 

TomTTT

New Member
Reaction score
44
Nice addition... these kinda length of triggers confuse me xD. Problem solved?
 

drak_dragon

New Member
Reaction score
6
unit ideas eh? well, depends on what kind of squads you're going for.


Ideas?



Sharpshooter
Basic single shot long ranged squad unit dealing decent damage with a medium duration cooldown between shots.
-Upgrades
--Critical type bonus? Gives chance to critical, for 2x, 4x, or 8x. Last upgrade could be a "Headshot" which has a chance to deal lethal damage (use bash, 0 stun, 9001?base bonus damage)

--Piercing shot? like a shockwave attack with no special graphic, dealing flat damage in a line. upgrades increase the length, or damage (triggers could do this) // these would also have a set proc chance per shot.

--Crippling Shot? like, once on occasion when attacking the target might become afflicted with an injury. upgrades increase chance of this to happen, or give access to new debuffs.
---debuff ideas
Bleed // DoT effect
Leg Wound // Slow
Arm Wound // Attack power reduction



Rocketeer
Ground unit that attacks using rockets at targets. high damage, slow attack rate, splash.

Upgrades?
Impact Rocket
Sometimes opponets will become dazed or stunned by these rockets. upgrades will increase the chances of both. stun wouldn't appear until third tier upgrade

Prototype Explosive
Sometimes when firing, the unit will actually attack with a random special rocket, doing an effect. further upgrades increase the types of rockets available, as well as the chance this may happen
--Scorching Rocket // leaves fire on the ground hurting opponets that step into it. (Or, as that blood elf mage flamestrike thing)
--Nitrogen Rocket // Blast emits a burst of nitrogen, chilling and slowing those in its range. (As frost nova)
--Tesla Rocket // Explodes, then shoots out a burst of energy striking targets in range. (As chain lightning or forked lightning)
--Cropduster Rocket // Explodes, then shoots out pellets that bounce around to a random point, then explode again (triggers can do this)

Rocket Volley
Gives your Rocketeers access to the Rocket Volley ability (like rain of fire but with rockets as the models)
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • Ghan Ghan:
    Howdy
  • Ghan Ghan:
    Still lurking
    +3
  • The Helper The Helper:
    I am great and it is fantastic to see you my friend!
    +1
  • The Helper The Helper:
    If you are new to the site please check out the Recipe and Food Forum https://www.thehelper.net/forums/recipes-and-food.220/
  • Monovertex Monovertex:
    How come you're so into recipes lately? Never saw this much interest in this topic in the old days of TH.net
  • Monovertex Monovertex:
    Hmm, how do I change my signature?
  • tom_mai78101 tom_mai78101:
    Signatures can be edit in your account profile. As for the old stuffs, I'm thinking it's because Blizzard is now under Microsoft, and because of Microsoft Xbox going the way it is, it's dreadful.
  • The Helper The Helper:
    I am not big on the recipes I am just promoting them - I use the site as a practice place promoting stuff
    +2
  • Monovertex Monovertex:
    @tom_mai78101 I must be blind. If I go on my profile I don't see any area to edit the signature; If I go to account details (settings) I don't see any signature area either.
  • The Helper The Helper:
    You can get there if you click the bell icon (alerts) and choose preferences from the bottom, signature will be in the menu on the left there https://www.thehelper.net/account/preferences
  • The Helper The Helper:
    I think I need to split the Sci/Tech news forum into 2 one for Science and one for Tech but I am hating all the moving of posts I would have to do
  • The Helper The Helper:
    What is up Old Mountain Shadow?
  • The Helper The Helper:
    Happy Thursday!
    +1
  • Varine Varine:
    Crazy how much 3d printing has come in the last few years. Sad that it's not as easily modifiable though
  • Varine Varine:
    I bought an Ender 3 during the pandemic and tinkered with it all the time. Just bought a Sovol, not as easy. I'm trying to make it use a different nozzle because I have a fuck ton of Volcanos, and they use what is basically a modified volcano that is just a smidge longer, and almost every part on this thing needs to be redone to make it work
  • Varine Varine:
    Luckily I have a 3d printer for that, I guess. But it's ridiculous. The regular volcanos are 21mm, these Sovol versions are about 23.5mm
  • Varine Varine:
    So, 2.5mm longer. But the thing that measures the bed is about 1.5mm above the nozzle, so if I swap it with a volcano then I'm 1mm behind it. So cool, new bracket to swap that, but THEN the fan shroud to direct air at the part is ALSO going to be .5mm to low, and so I need to redo that, but by doing that it is a little bit off where it should be blowing and it's throwing it at the heating block instead of the part, and fuck man
  • Varine Varine:
    I didn't realize they designed this entire thing to NOT be modded. I would have just got a fucking Bambu if I knew that, the whole point was I could fuck with this. And no one else makes shit for Sovol so I have to go through them, and they have... interesting pricing models. So I have a new extruder altogether that I'm taking apart and going to just design a whole new one to use my nozzles. Dumb design.
  • Varine Varine:
    Can't just buy a new heatblock, you need to get a whole hotend - so block, heater cartridge, thermistor, heatbreak, and nozzle. And they put this fucking paste in there so I can't take the thermistor or cartridge out with any ease, that's 30 dollars. Or you can get the whole extrudor with the direct driver AND that heatblock for like 50, but you still can't get any of it to come apart
  • Varine Varine:
    Partsbuilt has individual parts I found but they're expensive. I think I can get bits swapped around and make this work with generic shit though
  • Ghan Ghan:
    Heard Houston got hit pretty bad by storms last night. Hope all is well with TH.
  • The Helper The Helper:
    Power back on finally - all is good here no damage
    +2
  • V-SNES V-SNES:
    Happy Friday!
    +1

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top