Code Monkey home page Code Monkey logo

dotacraft's Introduction

DotaCraft

Recreating Warcraft III inside Dota 2

We are now entering a closed Alpha stage, gathering a team of dedicated testers to fill the Bug Tracker and continue polishing the game. If you are interested in playtesting all sort of abilities, mechanics and interactions, finding bugs or missing content, sign up on the wiki page here.

See the spreadsheet tracking our progress here.

Public ToDo list here


If you are interested in helping with this project don't hesitate contacting me, either through my email, Steam, or come chat at the #dota2mods IRC @ GameSurge.net


Credits

  • Myll, for his incredible hard work and dedication on ModKit and Building Helper
  • BMD, for his invaluable help to the modding community in general.
  • zed, made very needed scaleform UI modules to use in variety of projects.
  • kritth, helped a ton with particles and mechanic ideas.
  • DarkMio, reddit diplomacy frontman.
  • SQL, tooltip hero
  • Markie, world editor parser machine
  • snipplets, for continuing work on Building Helper
  • Aleteh, gold mine model
  • wFX, orc abilities
  • Infekma, undead abilities and UI

dotacraft's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dotacraft's Issues

Builder gold collecting script error

My dota client raise a script error when I tried to collect some gold with some builders.
https://github.com/MNoya/DotaCraft/blob/master/game/dota_addons/dotacraft/scripts/vscripts/units/builder.lua#L660

Apparently, FindClosestResourceDeposit( caster, "gold") returns nil.

I believe there's some typo at https://github.com/MNoya/DotaCraft/blob/master/game/dota_addons/dotacraft/scripts/vscripts/units/builder.lua#L847

Shouldn't it be similar to its lumber's counterpart? https://github.com/MNoya/DotaCraft/blob/master/game/dota_addons/dotacraft/scripts/vscripts/units/builder.lua#L858 ?

Invisible box crashes

The Invisible box wearable change is deprecated.

Use Lua modifiers with MODIFIER_PROPERTY_MODEL_CHANGE or model:AddEffects(EF_NODRAW) instead.

Abilities Affected:

  • Druid of the Claw Bear Form
  • Druid of the Talon Crow Form
  • Sorceress Polymorph
  • Shadow Hunter Hex
  • Crypt Fiend Burrow

Some units leave corpse when they aren't supposed to

Summary:

WC3 has a "Death Type" key on units, with the following options:
img

Decay is used to define whether corpse should be removed after the default 88 second duration.
If a unit can't be raised, it won't leave a corpse (like heroes, mechanical units and some particular creatures).

Repro Steps:

  1. Kill a Wisp (can be done through building ancients)

Result:

A corpse is created

Expected Result:

Units that are marked as "Can't raise" in the World Editor shouldn't leave corpses.

Graveyard isn't detected

I couldn't build\create anything which require graveyard, but I already built one. When I had built another graveyard, I could build/create these things.

  1. Player 2 was undead (as was player 1)
  2. Build a graveyard
  3. You can't "use" the graveyard to make for instance crypt fiends
  4. Build a second graveyard
  5. Now you can

(When one graveyard is destroyed the effect is reverted, you CAN'T make let's say crypt fiends when one of your graveyards is destroyed)

You can train more than one hero with lvl 1 main building (great hall etc.) if you have enough resources

If you have enough resources to afford a secondary hero, while you are training your first one you can qeue the next one and even a third one.

  1. Build altar and don't level your main building.
  2. Get enough resources to afford the second hero.
  3. Start the training of your first hero.
  4. While you are training your first hero, click on another hero and he will get qeued.
  5. Enjoy having all your heroes with lvl 1 base.

Workshop for reborn.

As far as there isn't any button for suggestions in github I open an issue. Do you have in mind to upload to workshop this piece of code (even if it is unfinished) so we can see the progress within the client?

Bloodlust is missing Autocast Logic

Summary:

Bloodlust should have a "DOTA_ABILITY_BEHAVIOR_AUTOCAST", active by default, and only used when the units start attacking a target and aren't already buffed.

Repro Steps/Result: Missing

Expected Result:

Bloodlust uses the same autocast logic than Lich's Frost Armor

Units don't automatically detect enemies after one A-click

For example, I attack-move (on the ground) my army at a group of neutrals; each unit attack its target until the target dies, then does not find another target even though their fellow units are being attacked by the aggro'd neutrals.

I only have done this with the Orcs so far, but I assume each race uses the same AI for determining targets automatically.

Double burrow crashes the game

Using burrow on two crypt fiends immediatly after each other crashed my game.

  1. Use burrow on a crypt fiend
  2. Immediatly after the first burrow use burrow on a second crypt fiend
  3. Game crashes

Incorrect stat adjustments

in your npc_items_custom.txt (and applier file associated with it) :

MODIFIER_PROPERTY_MANA_REGEN_CONSTANT should be used instead of MODIFIER_PROPERTY_BASE_MANA_REGEN

The one you are using is giving a 1% bonus (I think? some percent anyway) per point of int instead of +.01 base (think like how crystal maiden grants flat amount of mana regen)

MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE should also be MODIFIER_PROPERTY_BASEATTACK_BONUSDAMAGE, to prevent it from showing as a red negative number in the tooltip (unless you handled this elsewhere, I'm commenting from my own derivative usage, and not from playing your dotacraft, so I apologize if you handled them elsewhere)

Spell breaker's control magic bug

Summary:

Spell breaker's control magic can target a neutral creep

Repro Steps:

  1. Use control magic on a neutral creep

Result:

Now u control it

Expected Result:

Message that control magic can only target summoned units

Haunted mines sometimes do not properly take in a fifth acolyte

If you take one acolyte off a full mine, then put it back on, it does not always take it. The gathering ability on the acolyte is toggled, but it does not remove it from selection and it does not contribute to gold gain. It appears the mine thinks it is full (based on console spew), despite the overhead showing 4/5 acolytes.

Note: It does appear that the jobless worker notification does count the acolyte as jobless.

Ghoul automatic tree harvesting does not check the path to the tree

Ghouls may sometimes choose a tree that can't be pathed to (because other trees are in the way), and as a result, will stand at a point close to the tree as possible and idly look at it until the path becomes cleared. This effect may apply to human workers too if they use the same harvesting AI.

Bloodlust fails to scale heroes

Summary:

Bloodlust should also read the original model scale for heroes and use the built-in GetModelScale() if it can't find the key.

Target line:

local final_model_scale = GameRules.UnitKV[target:GetUnitName()]["ModelScale"] + scaling_factor

Possible fix:

local model_scale = GetOriginalModelScale(target)
local final_model_scale = model_scale * (1+scaling_factor)

Adding this to mechanics.lua:

function GetOriginalModelScale( unit )
    local unit_name = unit:GetUnitName()
    local unit_table = unit:IsHero() and GameRules.HeroKV[unit_name] or GameRules.UnitKV[unit_name]
    return unit_table["ModelScale"] or unit:GetModelScale()
end

CTD while trying to select Peasants and the Town Hall training one.

Summary:

Selecting (with left click) an x amount of Peasants and a town hall producing a peasant leads to CTD once the Peasant's training timer hits 0. See screenshot for more accurate description: https://i.imgur.com/S2YbPg0.jpg

Repro Steps:

  1. Load DotaCraft, and pick Human. (I've been using Hills of Glory as the map)
  2. Start training a peasant in the Town Hall
  3. Hover over the Town Hall and the peasants that spawn when the game starts. (As is seen on the screenshot earlier) Do not release the left mouse button.
  4. As the Training timer hits 0, the client CTD's.
  5. If that isn't the case, try training a few more peasants while following these steps - and select the peasants you already managed to train too. (For me it takes 7 peasants ingame, and one being trained)

Result:

The client CTD's

Expected Result:

The client doesn't CTD.

Units stop attacking after killing a unit

This makes combat too hard, units won't continue to fight after they killed a unit. U have to right click every unit you want dead. This makes killing neutrals a pain in the ass.

WD Healing Ward - not working after the caster is dead

Summary:

When Witch Doctor casts Healing Ward ability and dies after that, the ward doesn't heal.
ERROR IMAGE

Repro Steps:

1.Use Healing Ward
2.Let the Witch Doctor who cast it to die

Result:

The ward doesn't heal any more

Expected Result:

The Healing Ward should heal ally units regardless of the caster's condition. And should stop healing only if it's killed or his time has over.

Attack Ground last projectile doesn't damage on hit

Summary:

Attack Ground last attack doesn't land if cancelled mid-flight.

Repro Steps:

  1. Create a nightelf_glaive_thrower
  2. Use the Attack Ground ability on something (an allied wisp for example)
  3. While the attack is in and hasn't landed yet, move to cancel the attack-ground

Result:

The projectile doesn't do damage when it ends

Expected Result:

Damage is done normally

Reconnection Errors

Summary:

After disconnecting and reconnecting back to the game, most of the player tracking gets ruined, because of how the player handle changes after reconnection.

Repro Steps:

  1. Disconnect as a client
  2. Reconnect to the server

Result:

Builders stop gathering, training stops working and many other general failures.

Expected Result:

While disconnected, the builders should still continue gathering resources and unit queue should continue, after reconnecting the player should have full control of all its owned units and resources.

Each wisp has independent gold gathering time

Summary: As far as I recall, in wc3 multiple wisps in same goldmine 'mimic' the timing orcs and humans have when it comes to gathering.

Procedure:

  1. Line wisps up as close to gold mine as possible so they enter it almost at once.

Expected result: +10 should appear at a constant pace.

Result: +10 are happening independently, if wisps joins goldmine silmutaneously, you get +10's silmutaneously.

Additional Note: I didnt test for undeads, but might be same case.

Storm's Windwalk invisibility lasts until the attack lands

Summary :
Refer to title

Procedure :

  1. Storm Earth and Fire heed my call
  2. Select Storm and use Windwalk
  3. Autoattack any target

Result :
Storm remains invisible until the projectile actually hits(in other words, he will remain perma invis until his next autoattack lands)

Expected result :
Invis should be removed as soon as backswing starts

Additional note :
The code was copypasta'd from Blademaster's Windwalk who is not ranged. Requires slightly different approach for ranged hero

Cannot entangle gold mines

When I built a tree of life next to a gold mine, it didn't entangle it. Tried it at 2 gold mines and it didn't work.

Lock/unlock team buttons not working properly

Summary:

Lock team actually unlocks
Unlock team actually locks

Repro Steps:

  1. Start a game
  2. Click "lock team", which does nothing
  3. Click "Unlock team", which locks the teams

Result:

Teams are locked

Expected Result:

Teams are unlocked

Shop not working

Shop opens, but I can't buy anything.

  1. Build a shop/ go to the tavern
  2. Click anything with left/right mouse button
  3. Nothing works

Selection building bug

When u select a couple of units and 2 or more similar buildings 1 of this buildings remains selected

Spell breaker's control magic bug

Summary:

Spell breaker's control magic can control a neutral

Repro Steps:

  1. Use control magic ability on neutral

Result:

Now u control it

Expected Result:

A message that this ability should target a summoned unit

Creating a building next to working peasant causes interrupt

Summary:

A peasant building a building can be interrupted by another peasant trying to build something at its location

Reproduction steps:

  1. Order peasant 1 to build something
  2. Issue another peasant to build something at where Peasant 1 is
  3. Peasant 1 is forced to move out of building location and thus cancels what he was doing
    http://i.imgur.com/W53FiE3.png

Result:
Peasant 1 stops building and just stands still, awaiting order

Expected Result:
Peasant 1 should continue working on the building.

Incorrect lumber display when drawing minimap on right

Summary:

When drawing minimap on right, the lumber number is shown over the minimap

Repro Steps:

  1. Set minimap on right
  2. Start a game!

Result:

lumber is shown on right over the minimap.

Expected Result:

lumber is shown on left.

Lumber count

hey, I just implemented lumber in my Addon, but facing a problem right now:
In the UI it doesn't show me the lumber, it looks like the following

unbenannt

Hope you can help me

Stutter-stepping with certain abilities causes FPS drops

For example, stutter stepping with shadowmeld or mount hippogriff with nightelf archers causes FPS to tank. Sometimes this causes the game to crash. During this testing I was the host of the game, as well as the only player.

Also once the game reaches around 100 units average FPS halves (23 -> 10).

Keep in mind my PC is basically wood (laptop i3 processor, intel integrated graphics, 4gb ram).

Holy Light and Death Coil don't check for Living/Undead

Summary:

Paladin's and Death Knight's first abilities should only be usable on certain target types. Currently it works on every allied/enemy unit for the damage/heal.

Repro Steps:

  1. Use Holy Light on an enemy Orc/Night Elf unit, any neutral, or an allied Undead unit.

Result:
Heal/Damage goes through

Expected Result:

Message: Must target friendly living units or enemy Undead units (for Holy Light)

A message that this ability should target a summoned unit

Idle wisp icon

When you use unified unit control while wisps are in a gold mine, they won't move but the game thinks they are idle. Thus it will display that the wisps are idle.

Group testing

We need to organize some 1v1s, 2v2s, or even 3v3s if its stable enough

Colors clicked by player 2 can't be used by player 1

When player 2 clicks on grey for instance and then changes to another color, player 1 can't use grey anymore.

  1. Let player 2 choose a color
  2. Let him change the color
  3. Player 1 can't choose gray anymore

(this works the other way around aswell, this means player 1 can never be blue, and player 2 can never be red)

Undead_sacrificial_pit is not placeable

The building displays the preview, but will not be placed.
_Console Log:_
[BH] AddBuilding undead_sacrificial_pit Unknown Damage type during parse! (DAMAGE_TYPE_PHYSICAL) CDOTA_ParticleManager::SetParticleControlEnt: Unable to lookup attachment follow_origin on model models/props_structures/cage001.vmdl prop_dynamic at (0.000, 0.000, 0.000) has no model name! ERROR: RESOURCE_TYPE_MODEL resource 'models/error.vmdl' (BC8F62FD531EF4EF) requested is not loaded and may have been deleted. GetNumPrecachedBreakablesForProp discovered no precached break models for model "models/error.vmdl". Ensure PropBreakablePrecacheAll was called first. Player 0 Lumber: 1338 895 Player 0 Lumber: 1358 Return Resources of type lumber Send Build command. Queue: false CCustomGameEventManager::ReceiveCustomGameEvent_ClientToServer Args: { X float( -5533.934570 ) Y float( 2734.328613 ) Z int( 384 = 0x180 ) Queue int( 0 = 0x0 ) } [BH] Build Command - Queued: false [BH] Blight check for undead_sacrificial_pit: true [BH] AddToQueue undead_acolyte 581 -> location [-5536, 2720, 384] Script Runtime Error: ...6109224\396109224.vpk:scripts\vscripts\units\builder.lua:94: attempt to perform arithmetic on field 'CollisionSize' (a nil value) stack traceback: ...6109224\396109224.vpk:scripts\vscripts\units\builder.lua:94: in function 'onBuildingPosChosen' scripts/vscripts/libraries/buildinghelper.lua:947: in function 'AddToQueue' scripts/vscripts/libraries/buildinghelper.lua:76: in function <scripts/vscripts/libraries/buildinghelper.lua:54

Jobless worker notification for Night Elves is glitchy

For example, it sometimes counts wisps on trees, it won't count wisps that have been kicked out of a mine because of the home tree uprooting and moving away, and control + right clicking doesn't take wisps off trees, but causes the notification to update.

First ghoul is not recieving the upgrades

When you upgrade armor and damage of your units, the first ghoul (the one you get from start) isn't recieving the upgrades. Not visually and not mechanically, not from the graveyard and not from the crypt.

Cannot start game properly

Summary:

title

Repro Steps:

  1. start a game on the 2-player map
  2. lock+start

Result:

1

Expected Result:

game starts

Note

  • I didn't see this issue before the 9/1 or 9/4 update. I don't remember which one.
  • After quitting the game, I started a bot match. In hero choosing screen, antimage has the name demon hunter, sf is called firelord, and kotl is archmage, etc.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.