Commit Graph

102 Commits

Author SHA1 Message Date
joffreybesos
4a7e782343 panels (#84) 2025-03-01 22:00:50 +09:00
CarlPoppa1
d2da4b1919 Add BodyLoc1 and BodyLoc2 as an array in item Type struct (#77)
* Added BodyLocs to type struct
To hold array of BodyLoc1 and BodyLoc2 from itemtypes.txt

* Updated itemtype template to import BodyLoc1 and BodyLoc2 as an array

* New generated itemtypes.go with BodyLocs array

* Use LocationType instead of string for BodyLocs

* Added missing ItemTypes declaration

---------

Co-authored-by: CarlPoppa <hilikus99@protonmail.com>
2025-02-28 22:01:13 +09:00
elb
5455fd9772 Fix broken negative stats, update some stat description (#79)
* Fix broken negative stats, update some stat description

* ###

* #2

* curses is necro, frw on armor is velocity percent ( unused)

* Update rules to accept negative value

fix a bug with unique grand charm tz

[name] == grandcharm && [quality] == unique # ([fireresist] + [coldresist] + [lightresist]) >= -75

Single stat rules like [coldresist] >= -75 require the stat to exist

expressions like ([fireresist] + [coldresist] + [lightresist]) >= -75 treat missing stats as 0

Unidentified items with any stat requirements need identification first

* LevelReq + identifiedName added for all Crafted items

* Fix issue with rule.go

* Update stat throw damage and basename: GrandCharm -- Grand Charm

* Adjusting rule for ItemLevelReq  = 0

* update rule again
2025-02-21 18:11:27 +02:00
elb
438f80b911 Added WidgetStates + ActiveWeaponSlot (#62) 2025-02-19 20:15:33 +09:00
davidfvsilva
700af20844 fix: act 5 barbarians are good boys (#75) 2025-02-17 21:07:46 +09:00
elb
120c2ba144 Prefix,Suffix,LevelReq Socketed items on bases, bodyloc, Merc equipment (#74)
* Prefix,Suffix, Socketed with base, bodyloc, Merc equipment

Will add better description later:

Item that has socketed items now display their linked runes/jewels/gems in accurate order

Rare prefix, rare suffix id
Magic prefix1,2,3  magic suffix1,2,3
Prefix1 also used to tell wich runeword it is
Spirit 20635, cta 20519 , infinity 20566 see : getlocalestring.txt

Mercenary equipment now displaying in inventory list . Also has custom location : mercenary instead of equipped

Bodyloc :
	// Body locations
	LocNone              LocationType = "none"
	LocHead              LocationType = "head"
	LocNeck              LocationType = "neck"
	LocTorso             LocationType = "torso"
	LocLeftArm           LocationType = "left_arm"
	LocRightArm          LocationType = "right_arm"
	LocLeftRing          LocationType = "left_ring"
	LocRightRing         LocationType = "right_ring"
	LocBelt              LocationType = "belt"
	LocFeet              LocationType = "feet"
	LocGloves            LocationType = "gloves"
	LocLeftArmSecondary  LocationType = "left_arm_secondary"
	LocRightArmSecondary LocationType = "right_arm_secondary"

	Note that if you begin game on secondary slot it will be left_arm  then primary will be  left_arm_secondary (inversed):  With pr 62 (activeweaponslot) we will be able to solve this potential issue.

* small optimization

* Socketed items to base from pointer

new helper functions.
AutoAffix offset.

* remove helpers fnc, flag isEquipped to HasBeenEquipped

* Runewords names mapped

* helper function not needed

* Optimization

* adjust pre-allocations

* readd removed itemloc comment

* Addex prefix/suffix to rules .nip

new structure:
[Type], [Quality],[Class], [Name], [Flag], [Color], [Prefix], [Suffix]  #  Stats

Exemple : [name] == ring && [quality] == rare && [suffix] == 174 #

Any magic ring with suffix 'of The Apprentice'  ( 10 faster cast rate)

Will be useful for trophy items with fool/cruel  [prefix] == 1416 [prefix] == 1273

* LevelReq + Affixes mapping rare/magic/base/runewords. Nip parser LevelReq

* Unique and set items mapping + LevelReq
2025-02-16 23:02:03 +02:00
Arto Simonyan
09dfe3c65d Add more item flags (#69)
* Add more item flags

- Add more item flags
- Modify some of the stat strings

* fix ethereal

* Rename flag
2025-02-09 01:08:58 +02:00
elb
415ac29ab1 Chat Open menu + additions to IsMenuOpen() (#71) 2025-01-19 18:32:31 +02:00
Arto Simonyan
591fbf1605 Add Stat names (#67)
* Add Stat names

* Return actual stat name with value

* Remove one of the methods
2024-12-30 13:47:02 +02:00
elb
2924189fe8 Added Entrance/Stairs unittype5 table lvlwrap.txt (#64) 2024-12-23 20:06:15 +02:00
elb
8a1f7e1a17 Extracting more data from object.txt for interactions (#63)
* Extracting more data from object.txt for interactions
Description struct {
    ID           int
    Name         string
    SizeX        int
    SizeY        int
    HasCollision bool
    Left         int
    Top          int
    Width        int
    Height       int
    Xoffset      int
    Yoffset      int
}

* levelreq readded

* formatting in one line.
2024-12-21 20:25:11 +02:00
elb
444f4b0e9b Added a few OpenMenus, also HasMerc() (#60)
* wpList, LoadingScreen, GetSelectedCharacterName
Credits to gogigogi1

* Class offset updated

* TZ online

* IsCorpse Offset

* Added a few OpenMenus, also HasMerc()
PortraitsShown,BeltRows,QuestLog,MercInventory,NewStats
then  func  HasMerc()  return true if we have merc.
2024-12-20 17:50:33 +09:00
Héctor Giménez
bfd86a6535 Revert "Added more OpenMenus (#58)" (#59)
This reverts commit 7f2eb8b8f1.
2024-12-18 22:17:39 +09:00
elb
7f2eb8b8f1 Added more OpenMenus (#58) 2024-12-18 22:08:14 +09:00
Hector
04f45d3069 Regenerate code from txts 2024-12-16 16:27:30 +01:00
elb
77bf135bf8 New quest offset and structure
Credits to gogigogi1
2024-12-17 00:23:14 +09:00
elb
2eeee0cf1f Npc/Monsters Mode and Portals destination + optimization (#49)
* Added States for monsters and corpses

Now can properly identify if a corpse is interactable with a skill ( barbarian, necromancer)
Also getting states about monsters  : Exemple  Soul Killer with Conviction aura:   State  28 // conviction

Also can tell if monster has a state after you used a skill on it  Exemple:   State 56  Terror ( After using Barbarian skill Howl to fear )

Another Exemple  using Grief on Mephistos he now have  states :    2 poison
    52  Preventheal

will be very useful for further development.

* Added modes to player

Now accessible in koolo using : s.data.PlayerUnit.Mode

Those are Modes for player:
const Death: 0;
        const StandingOutsideTown: 1;
        const Walking: 2;
        const Running: 3;
        const GettingHit: 4;
        const StandingInTown: 5;
        const WalkingInTown: 6;
        const Attacking1: 7;
        const Attacking2: 8;
        const Blocking: 9;
        const CastingSkill: 10;
        const ThrowingItem: 11;
        const Kicking: 12;
        const UsingSkill1: 13;
        const UsingSkill2: 14;
        const UsingSkill3: 15;
        const UsingSkill4: 16;
        const Dead: 17;
        const SkillActionSequence: 18;
        const KnockedBack: 19;

* update Added alias(const) for player modes

can be used like this s.data.PlayerUnit.Mode == mode.StandingInTown

* added modes to object

0 = Object idle
1 = Object operating
2 = Object opened
3 = Object special 1    ?? to be determined what it does exactly
4 = Object special 2    ?? to be determined what it does exactly
5 = Object special 3    ?? to be determined what it does exactly
6 = Object special 4    ?? to be determined what it does exactly
7 = Object special 5    ?? to be determined what it does exactly

* update object mode strings

* Update object_mode.go

* Update object_mode.go

* update object modes again. accurate now

* Added IsSealBoss()  for Chaos Run

* Npc/Monster Modes and Portals destination
also IsEscapingType()  Monster cannot be attacked when airborne or hide in water (NpcMode 8)

* Npc/Monster Modes and Portals destination
also IsEscapingType()  Monster cannot be attacked when airborne or hide in water (NpcMode 8)

* Optimized monsters.go and object.go
also catapults have been added to ignore list

* Tz Frigid Higland ingores added
2024-12-01 22:54:57 +09:00
Héctor Giménez
b2c710dc5c fix necro revive and proper locate items from cube 2024-11-07 21:56:02 +09:00
Héctor Giménez
c699e0c53a add decoy and necro revives as pet 2024-11-06 21:48:43 +09:00
elb
7523a5caed added modes to object (update) (#46)
* Added States for monsters and corpses

Now can properly identify if a corpse is interactable with a skill ( barbarian, necromancer)
Also getting states about monsters  : Exemple  Soul Killer with Conviction aura:   State  28 // conviction

Also can tell if monster has a state after you used a skill on it  Exemple:   State 56  Terror ( After using Barbarian skill Howl to fear )

Another Exemple  using Grief on Mephistos he now have  states :    2 poison
    52  Preventheal

will be very useful for further development.

* Added modes to player

Now accessible in koolo using : s.data.PlayerUnit.Mode

Those are Modes for player:
const Death: 0;
        const StandingOutsideTown: 1;
        const Walking: 2;
        const Running: 3;
        const GettingHit: 4;
        const StandingInTown: 5;
        const WalkingInTown: 6;
        const Attacking1: 7;
        const Attacking2: 8;
        const Blocking: 9;
        const CastingSkill: 10;
        const ThrowingItem: 11;
        const Kicking: 12;
        const UsingSkill1: 13;
        const UsingSkill2: 14;
        const UsingSkill3: 15;
        const UsingSkill4: 16;
        const Dead: 17;
        const SkillActionSequence: 18;
        const KnockedBack: 19;

* update Added alias(const) for player modes

can be used like this s.data.PlayerUnit.Mode == mode.StandingInTown

* added modes to object

0 = Object idle
1 = Object operating
2 = Object opened
3 = Object special 1    ?? to be determined what it does exactly
4 = Object special 2    ?? to be determined what it does exactly
5 = Object special 3    ?? to be determined what it does exactly
6 = Object special 4    ?? to be determined what it does exactly
7 = Object special 5    ?? to be determined what it does exactly

* update object mode strings

* Update object_mode.go

* Update object_mode.go

* update object modes again. accurate now
2024-10-05 11:47:06 +09:00
elb
19376148b3 Added modes to player (#44)
* Added States for monsters and corpses

Now can properly identify if a corpse is interactable with a skill ( barbarian, necromancer)
Also getting states about monsters  : Exemple  Soul Killer with Conviction aura:   State  28 // conviction

Also can tell if monster has a state after you used a skill on it  Exemple:   State 56  Terror ( After using Barbarian skill Howl to fear )

Another Exemple  using Grief on Mephistos he now have  states :    2 poison
    52  Preventheal

will be very useful for further development.

* Added modes to player

Now accessible in koolo using : s.data.PlayerUnit.Mode

Those are Modes for player:
const Death: 0;
        const StandingOutsideTown: 1;
        const Walking: 2;
        const Running: 3;
        const GettingHit: 4;
        const StandingInTown: 5;
        const WalkingInTown: 6;
        const Attacking1: 7;
        const Attacking2: 8;
        const Blocking: 9;
        const CastingSkill: 10;
        const ThrowingItem: 11;
        const Kicking: 12;
        const UsingSkill1: 13;
        const UsingSkill2: 14;
        const UsingSkill3: 15;
        const UsingSkill4: 16;
        const Dead: 17;
        const SkillActionSequence: 18;
        const KnockedBack: 19;

* update Added alias(const) for player modes

can be used like this s.data.PlayerUnit.Mode == mode.StandingInTown
2024-10-03 07:29:40 +09:00
Héctor Giménez
ab7163d111 calculate inventory matrix based on current inv items - fix 2024-10-02 23:13:17 +09:00
Héctor Giménez
df4ef2965a calculate inventory matrix based on current inv items 2024-09-29 22:20:43 +09:00
elb
9020cc396e Added States for monsters and corpses (#43) 2024-09-29 20:32:19 +09:00
Arto Simonyan
8239f1bbe4 Add Crafted Quality String (#42) 2024-09-14 17:10:07 +03:00
TDL
7b42e27aba Added extra item info (#41) 2024-09-10 23:04:47 +09:00
Héctor Giménez
9842199c15 add items FindByID 2024-09-03 20:39:32 +09:00
Héctor Giménez
792ff69790 remove collisiongrid, it doesnt belongs to this project 2024-09-03 20:39:16 +09:00
Farmith
0b4365936e Panel manager addition (#36)
* Added panelManager support for d2go (crude implementation but works)

* Refined a little bit

* Made widget map a more mappy map which can be access without iterations

* Added widgets to debugger
2024-08-22 19:58:53 +09:00
Arto Simonyan
c32403f8ed Update a few addresses (#35)
- Add FPS address - thanks @Farmith
- Update IsOnline
- Update IsIngame
2024-08-21 15:01:58 +03:00
Arto Simonyan
5a01fd3214 add function to check if there is an open menu (#33)
Co-authored-by: Héctor Giménez <hector.fwbz@gmail.com>
2024-08-16 19:23:30 +03:00
Arto Simonyan
a356597630 - Added OnlineGame info ( game name/pass ) (#32)
- Added IsInGame bool
- Added IsOnline bool :)
- Added IsInCharacterCreation bool
2024-08-16 12:29:50 +03:00
Farmith
52b0de329f Added shrines (#31)
* Added shrines, i think

* Fixed shrines

* Fix for actually determining a shrine the correct way

* Updated to use a Shrine object instead of a boring ID

* After deliberation, removed extra position thingamajigger
2024-08-15 20:38:14 +03:00
TDL
8e67284940 Corpses (#29)
* Update data.go

Added corpses check

* Update game_reader.go

Added corpse finder function

* Update monsters.go

added corpse finder function
2024-08-10 14:02:36 +03:00
Arto Simonyan
67692abea3 Add Skill String Names (#27) 2024-08-01 18:28:22 +03:00
Arto Simonyan
a141c9a110 Add runeword flag (#24) 2024-07-01 16:30:29 +03:00
SoundsLegit
3d4b0bc7a4 Added pet exclusions (#21)
* Added pet exclusions

* Added druid creepers to pets

---------

Co-authored-by: dmeli <d.melia@outlook.fr>
2024-06-25 15:45:29 +03:00
Arto Simonyan
bd7e821149 Add drop struct (#22) 2024-06-25 15:43:52 +03:00
Arto Simonyan
a6daaa36d0 Implement GetWalkableTiles for rooms (#20) 2024-06-09 22:29:38 +09:00
Héctor Giménez
019cd9a62d read legacy graphics 2024-06-04 22:44:23 +09:00
Héctor Giménez
e4a8cacb76 find object by ID 2024-06-03 18:33:37 +09:00
Héctor Giménez
e8531d919d add barracks to tz 2024-05-29 21:54:41 +09:00
Héctor Giménez
7c1647ae68 embed object name 2024-05-29 09:17:20 +09:00
Héctor Giménez
1a39621d2f get item desc 2024-05-29 09:14:57 +09:00
Héctor Giménez
c85217e8e7 generate object descriptions 2024-05-29 09:06:30 +09:00
Héctor Giménez
079df7a6ac filter by location type 2024-05-19 20:45:43 +09:00
Héctor Giménez
e4b4f8e1b5 Add Location struct and fixed possible panic 2024-05-19 20:40:20 +09:00
Héctor Giménez
2a5f31885e get stashed gold 2024-05-15 17:23:53 +09:00
Héctor Giménez
8fceb8fc99 add player unit address 2024-05-09 20:31:14 +09:00
Héctor Giménez
c398062b57 bugfixing, performance improvements and added casting frames formula 2024-05-09 20:27:31 +09:00