vrtc / honeydew (public) (License: CC0) (since 2023-12-20) (hash sha1)
Warcraft 3: The Frozen Throne 1.27 custom scenario.
List of commits:
Subject Hash Author Date (UTC)
feat: add simple test scripts 9bb401206b8187fe06ae9b3d2309e1244cea3c36 Vladyslav Bondarenko 2023-12-22 04:03:25
feat: add spell Attunement 29062f0810e8e239f37639973a48b187d0b81e4a Vladyslav Bondarenko 2023-12-22 03:58:59
feat!: add spell Dampening Field 61ddc9409c00c79ee947578291c21eaa701f41e2 Vladyslav Bondarenko 2023-12-22 01:38:15
stash amend this 050948decf45ea58dd25b0eddf62d1593ed4460f Vladyslav Bondarenko 2023-12-21 07:39:33
fix!: patch map script correctly 3a8cb9ba68d82685dce420659416d36b00e06ac8 Vladyslav Bondarenko 2023-12-21 01:15:05
fix: typo in Makefile 7fd84f0bd1d63c2218c4f72f96ea2297f204a223 Vladyslav Bondarenko 2023-12-21 01:00:47
build: complicate Makefile bff3fe00560b3afe70a869e2859d665367b4f62d Vladyslav Bondarenko 2023-12-21 00:52:56
fix!: declare Jass module user correctly c7f6b810ca76a7eee47213061a0740039ec95cec Vladyslav Bondarenko 2023-12-21 00:50:29
doc: add macro preprocessor caveat 651bad90dfe868626b5aa19331f674b9981f1dee Vladyslav Bondarenko 2023-12-20 01:55:27
doc: add macro preprocessor caveat 886e7960b79f1f13acd2359c44715dc157c6d7cf Vladyslav Bondarenko 2023-12-20 01:55:27
fix: fix typo in Makefile 652c3bd4a70f9f215a8f6824bc689596d173b85a Vladyslav Bondarenko 2023-12-20 01:33:56
doc: add basic build instructions 0fbeb1f61f266b7430d9365e3c282e64f751487d Vladyslav Bondarenko 2023-12-20 01:32:07
feat: add script dependency declarations 4dc32d10ed485bc6fd6856bffa269d4dcd2be4e0 Vladyslav Bondarenko 2023-12-20 01:30:33
feat!: improve Jass preprocessor ef275cd4087e2023c7107583685a5d1e40395786 Vladyslav Bondarenko 2023-12-20 01:21:07
feat: add arcane blast spell 1c2e8853a32b2c35ffdb1ea9d2342ff9bd9b8669 Vladyslav Bondarenko 2023-12-19 13:07:09
fix: unique hero per player c7910812bf1957513aab9067e817ca57634d4834 Vladyslav Bondarenko 2023-12-19 13:05:50
feat: heroes do not require resources to hire 717364a931afcde3496058a3f6100d95c92f7fe7 Vladyslav Bondarenko 2023-12-18 15:47:54
fix: add user force singleton 62f7007392e88829951855f9bd5eab3e7a5552aa Vladyslav Bondarenko 2023-12-17 13:02:08
doc: update design notes to self d8caf093082f02efc919b01cc7bfddd9193d0531 Vladyslav Bondarenko 2023-12-17 12:35:50
feat: add victory script 8d0299b42a3e61ffee708395017967dc288ed1b8 Vladyslav Bondarenko 2023-12-17 12:28:18
Commit 9bb401206b8187fe06ae9b3d2309e1244cea3c36 - feat: add simple test scripts
Modify build process to allow inserting additional testing Jass
snippets. Add test script to test Arcane Sorcerer hero. To toggle tests,
use test/Makefile. The test scripts must be defined with test_init
function, that is called using reflection in src/main.j:function main.
Author: Vladyslav Bondarenko
Author date (UTC): 2023-12-22 04:03
Committer name: Vladyslav Bondarenko
Committer date (UTC): 2023-12-22 04:03
Parent(s): 29062f0810e8e239f37639973a48b187d0b81e4a
Signer:
Signing key: EFF9624877D25D02
Signing status: E
Tree: 3d900d0d060ec2172533decc6701488b6cf40d50
File Lines added Lines deleted
Makefile 4 3
test/Makefile 1 0
test/test.j 84 0
File Makefile changed (mode: 100644) (index 9beea70..c97bf66)
... ... MAPSDIR="Maps/$(NAME)/"
28 28 vpath *.j src:$(BUILDDIR) vpath *.j src:$(BUILDDIR)
29 29
30 30 include src/Makefile include src/Makefile
31 include Makefile.config
31 sinclude Makefile.config
32 sinclude test/Makefile
32 33
33 34 build: $(BUILDDIR)/$(NAMEFULL).w3x $(BUILDDIR)/war3map.j build: $(BUILDDIR)/$(NAMEFULL).w3x $(BUILDDIR)/war3map.j
34 35 $(PJASS) $(PJASS_OPTS) "$(BUILDDIR)/war3map.j" $(PJASS) $(PJASS_OPTS) "$(BUILDDIR)/war3map.j"
 
... ... $(BUILDDIR):
45 46 mkdir -p "$(BUILDDIR)" mkdir -p "$(BUILDDIR)"
46 47
47 48 $(BUILDDIR)/war3map.j: $(BUILDDIR) src/jass_include.m4 $(SNIPPETS) $(BUILDDIR)/war3map.j: $(BUILDDIR) src/jass_include.m4 $(SNIPPETS)
48 $(PJASS) $(PJASS_OPTS) $(SNIPPETS)
49 $(M4) --debug=aeqp -I $(BASEDIR) src/jass_include.m4 $(SNIPPETS) > "$(BUILDDIR)/war3map.j"
49 $(PJASS) $(PJASS_OPTS) $(SNIPPETS) $(TESTS)
50 $(M4) --debug=aeqp -I $(BASEDIR) src/jass_include.m4 $(SNIPPETS) $(TESTS) > "$(BUILDDIR)/war3map.j"
50 51
51 52 $(BUILDDIR)/$(NAMEASSEMBLY).zip: .git/HEAD $(BUILDDIR)/$(NAMEASSEMBLY).zip: .git/HEAD
52 53 $(GIT) archive --format zip --output "$(BUILDDIR)/$(NAMEASSEMBLY).zip" --prefix "$(NAME)/" HEAD $(GIT) archive --format zip --output "$(BUILDDIR)/$(NAMEASSEMBLY).zip" --prefix "$(NAME)/" HEAD
File test/Makefile added (mode: 100644) (index 0000000..5a8ddae)
1 #TESTS=test/test.j
File test/test.j added (mode: 100644) (index 0000000..4a8da53)
1 // jass_module(`TEST_TEST_J')
2 // jass_include(`SRC_ABLA_J', `src/abla.j')
3 // jass_include(`SRC_ADUM_J', `src/adum.j')
4 // jass_include(`SRC_ATUN_J', `src/atun.j')
5
6 globals
7
8 // test/test.j fields
9
10 constant integer TEST_USER_ID = 0
11 constant integer TEST_ARCANE_SORCERER_UNIT_TYPE_ID = 'H001'
12 endglobals
13
14 // test/test.j functions
15
16 function test_enemy_pool_get takes nothing returns unitpool
17 local unitpool pool = null
18
19 set pool = CreateUnitPool()
20
21 call UnitPoolAddUnitType(pool, 'earc', 50.0)
22 call UnitPoolAddUnitType(pool, 'nwat', 40.0)
23 call UnitPoolAddUnitType(pool, 'edoc', 25.0)
24 call UnitPoolAddUnitType(pool, 'edry', 25.0)
25
26 return pool
27 endfunction
28
29 function test_enemy_init takes location o returns nothing
30 local unitpool pool = null
31 local integer i = 0
32 local integer q = 12
33 local player p = null
34 local real x = 0.0
35 local real y = 0.0
36 local unit u = null
37
38 if o == null then
39 return
40 endif
41
42 set pool = test_enemy_pool_get()
43 set p = Player(3)
44 set x = GetLocationX(o)
45 set y = GetLocationY(o)
46
47 loop
48 exitwhen i >= q
49 set u = PlaceRandomUnit(pool, p, x, y, bj_UNIT_FACING)
50 call UnitShareVision(u, Player(TEST_USER_ID), true)
51 set i = i + 1
52 endloop
53
54 call DestroyUnitPool(pool)
55 endfunction
56
57 function test_init takes nothing returns nothing
58 local player p = null
59 local integer start = 0
60 local location o = null
61 local integer utype = 0
62 local unit h = null
63
64 set p = Player(TEST_USER_ID)
65
66 set start = GetPlayerStartLocation(p)
67 set o = GetStartLocationLoc(start)
68
69 set utype = TEST_ARCANE_SORCERER_UNIT_TYPE_ID
70 set h = CreateUnitAtLoc(p, utype, o, bj_UNIT_FACING)
71 call SetHeroLevel(h, 10, false)
72 call SetUnitState(h, UNIT_STATE_MANA, GetUnitState(h, UNIT_STATE_MAX_MANA))
73 call SetUnitUseFood(h, false)
74
75 if p == GetLocalPlayer() then
76 call ClearSelection()
77 call SelectUnit(h, true)
78 endif
79
80 call MoveLocation(o, GetStartLocationX(start) - 512.0 * 3, GetStartLocationY(start) - 512.0 * 3)
81 call test_enemy_init(o)
82
83 call RemoveLocation(o)
84 endfunction
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/vrtc/honeydew

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/vrtc/honeydew

Clone this repository using git:
git clone git://git.rocketgit.com/user/vrtc/honeydew

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main