/wc3-systems

Ideas for Warcraft III: Reforged systems for custom maps.

wc3-systems

Ideas for Warcraft III: Reforged systems for custom maps.

Systems

Unit Routine System

Dialog Pages System

Weather/Four Seasons System

  • Replace treees in seasons.
  • Replace ground textures in seasons.
  • Replace buildings and units in seasons.
  • Weather effects depending on seasons and time.
  • Lightnings during rain.
  • Rays at day and night.
  • Exclude regions from weather effects.

AI Ships System

Warcraft III AI does not support ships. It even has issues building shipyards etc. Features:

  • Building shipyards.
  • Defending ships.
  • Custom attack waves at areas which are reachable by sea.
  • Repairing ships.
  • Transport ships (a bit harder).

Handle Group System

Motivation: force and group support player and unit but other types should be supported, too.

Something like:

local itemgroup g = CreateItemGroup()
call ItemGroupAddItem(g, whichItem)
set tmpItem = FirstOfItemGroup(g)
call ItemGroupRemoveItem(g, whichItem)
call ItemGroupClear(g)
call DestroyItemGroup(g)
call IsItemInItemGroup(g, whichItem)

for every handle type and as trigger action.

Idle Icon System

Idle Icon System: Custom idle icons for warrior types, heroes etc. inspired by games like AoM.

Votekick system

Votekick System: Allows starting a votekick against a player with "-votekick X" where X is the player number or color. Typing "-yes" approves the votekick. By default, if more than half or players vote "-yes" he/she is kicked from the game. There is a time limit how long the votekick lasts and every player has a cooldown on how often he/she can start a votekick. Besides, there is a global votekick cooldown/only one votekick at a time. This could also be based on a more general vote system.

Multiboard Stats system

Multiboard based system which allows you to configure columns and lines with predefined stuff like: Player name, hero level, gold, lumber, unit kills etc.

Turret System

https://github.com/tdauth/wc3-modern-warfare/tree/master/systems

Black Arrow System

https://github.com/tdauth/wowr/tree/master/systems

Item Unstack System

https://github.com/tdauth/wowr/tree/master/systems

Player Stats system

Show player score and team score like in AoE which can be hidden with a button.

Mock system

Allows sending mocks via chat, enabling/disabling them and easily configure sounds with texts from the original game.

Vote system

Players can vote about choices with some timeout. If a player leaves the vote is subtracted, if the timeout expires a default vote is used. Could provide an advanced UI compared to the basic dialogs or chat commands or tavern units/heroes for races, professions etc. It could also be more abstract than the votekick system and the votekick system could be based on this.

Item Craft System

Combining different items into new items.

Unit/Item Respawn system

See my system in The Power of Fire. Units, heroes, items can respawn with custom time values, conditions and random creep/item tables. Besides, creeps can drop stuff etc.

Save Code system

Basic save code system which can store different properties which are represented by integers. Save codes can be restricted to player hashes and contain checksums. See World of Warcraft Reforged.

Missing fields system

Some fields for object types might be missing from the new natives like icons. We can provide functions to register and retrieve icons for object IDs in a performant way if there are no natives to get the icons. Icons are useful in multiboards, custom UI etc.

globals
  constant integer ICON_TYPE_ACTIVE_BUTTON = 0
  constant integer ICON_TYPE_PASSIVE_BUTTON = 1
  constant integer ICON_TYPE_ACTIVE_BUTTON_DIS = 2
  constant integer ICON_TYPE_PASSIVE_BUTTON_DIS = 3
  constant integer ICON_TYPE_RESEARCH_BUTTON = 4
  constant integer ICON_TYPE_RESEARCH_BUTTON_DIS = 5
  constant integer ICON_TYPE_OFF_BUTTON_DIS = 6
  constant integer ICON_TYPE_ON_BUTTON = 7
  constant integer ICON_TYPE_ON_BUTTON_DIS = 8
  constant integer ICON_TYPE_OFF_BUTTON = 9
  constant integer ICON_TYPE_OFF_BUTTON_DIS = 10
  constant integer ICON_TYPE_SCORE_BUTTON = 11
  constant integer ICON_TYPE_UPRADE_BUTTON = 12
endglobals

function GetObjectIdIcon takes integer id, integer t returns string
function HasObjectIdIcon takes integer id, integer t returns boolean
function SetObjectIdIcon takes integer id, integer t, string iconPath returns nothing

// Adds all Warcraft III icons.
function AddStandardObjectIdIcons takes nothing returns nothing