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: spell Attunement leaves battle scarring c3458ede56c8b85d6580851fa38a0c726ee5eb7c Vladyslav Bondarenko 2024-01-05 16:36:58
feat: spell Arcane Lance displays beam graphics e40bf803cc04cae231295a04a277480ad3acff19 Vladyslav Bondarenko 2024-01-05 15:24:10
fix: spell Attunement uses ability id for effects 93f15ee614ce5958f2a52a8fbc336c8938b40b09 Vladyslav Bondarenko 2023-12-27 08:57:29
feat!: add spell Arcane Lance base e164d3c3f3f69230dbb9b1e5045c551f5870337d Vladyslav Bondarenko 2023-12-23 23:23:58
nightly: 0.1-WIP c97814a5f138ed20958a7a1f88f5c2c6a2081906 Vladyslav Bondarenko 2023-12-22 04:08:33
doc: add note to self about computer users 40c8b325bce404489c03ab0a8db90cadbc008ae3 Vladyslav Bondarenko 2023-12-22 04:05:26
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
Commit c3458ede56c8b85d6580851fa38a0c726ee5eb7c - feat: spell Attunement leaves battle scarring
Author: Vladyslav Bondarenko
Author date (UTC): 2024-01-05 16:36
Committer name: Vladyslav Bondarenko
Committer date (UTC): 2024-01-05 16:36
Parent(s): e40bf803cc04cae231295a04a277480ad3acff19
Signer:
Signing key: EFF9624877D25D02
Signing status: E
Tree: ccf2841b4394158df96a6ae018870b1bd7455e7c
File Lines added Lines deleted
honeydew.w3x 0 0
src/atun.j 84 1
File honeydew.w3x changed (mode: 100644) (index 69137a2..f3c814b)
File src/atun.j changed (mode: 100644) (index 99448e7..540ab34)
... ... globals
7 7 constant real ATUN_RESTORE_MANA_COEF = 25.0 constant real ATUN_RESTORE_MANA_COEF = 25.0
8 8 constant real ATUN_RESTORE_MANA_MIN = 0.0 constant real ATUN_RESTORE_MANA_MIN = 0.0
9 9 constant real ATUN_RESTORE_MANA_MAX = 65536.0 constant real ATUN_RESTORE_MANA_MAX = 65536.0
10
11 ubersplat array atun_decal
12 timer array atun_decal_timer
13 effect array atun_decal_effect
14 integer atun_decal_head = 0
10 15 endglobals endglobals
11 16
17 function atun_decal_destroy takes integer i returns nothing
18 local integer p = 0
19 local integer q = 0
20 local integer j = 0
21
22 call DestroyTimer(atun_decal_timer[i])
23 call DestroyUbersplat(atun_decal[i])
24 call DestroyEffect(atun_decal_effect[i])
25
26 set p = i
27 set j = IMinBJ(IMaxBJ(0, atun_decal_head), JASS_MAX_ARRAY_SIZE - 1)
28 loop
29 exitwhen p >= j or q >= j
30 set q = p + 1
31 set atun_decal[p] = atun_decal[q]
32 set atun_decal_timer[p] = atun_decal_timer[q]
33 set atun_decal_effect[p] = atun_decal_effect[q]
34 set p = p + 1
35 endloop
36 endfunction
37
38 function atun_decal_timer_callback takes nothing returns nothing
39 local timer t = GetExpiredTimer()
40 local integer i = 0
41 local integer j = 0
42
43 set j = IMinBJ(IMaxBJ(0, atun_decal_head), JASS_MAX_ARRAY_SIZE - 1)
44 loop
45 exitwhen i >= j
46 if t == atun_decal_timer[i] then
47 call atun_decal_destroy(i)
48 set atun_decal_head = atun_decal_head - 1
49 endif
50 set i = i + 1
51 endloop
52 endfunction
53
54 function atun_decal_create takes location loc, real duration_sec returns integer
55 local timer t = null
56 local ubersplat splat = null
57 local real x = 0.0
58 local real y = 0.0
59 local effect e = null
60
61 if null == loc then
62 return 0
63 endif
64
65 if duration_sec < 1.0 then
66 return 0
67 endif
68
69 if atun_decal_head >= JASS_MAX_ARRAY_SIZE then
70 return 0
71 endif
72
73 set x = GetLocationX(loc)
74 set y = GetLocationY(loc)
75 set splat = CreateUbersplat(x, y, "HCRT", 255, 255, 255, 255, false, false)
76 //call FinishUbersplat(splat)
77 call ShowUbersplat(splat, true)
78 call SetUbersplatRenderAlways(splat, true)
79
80 set t = CreateTimer()
81 set atun_decal_timer[atun_decal_head] = t
82 set atun_decal[atun_decal_head] = splat
83
84 set e = AddSpellEffectByIdLoc(ATUN_ABILITY_ID, EFFECT_TYPE_SPECIAL, loc)
85 set atun_decal_effect[atun_decal_head] = e
86
87 set atun_decal_head = atun_decal_head + 1
88
89 call TimerStart(t, duration_sec, false, function atun_decal_timer_callback)
90
91 return GetHandleId(t)
92 endfunction
93
12 94 function atun_mana_restore_amount_get takes unit caster, unit victim returns real function atun_mana_restore_amount_get takes unit caster, unit victim returns real
13 95 local effect e = null local effect e = null
14 96
 
... ... function atun_mana_restore_amount_get takes unit caster, unit victim returns rea
50 132 // TODO src/atun.j: add floating test showing amount of mana restored // TODO src/atun.j: add floating test showing amount of mana restored
51 133 set t = GetUnitLoc(victim) set t = GetUnitLoc(victim)
52 134 set e = AddSpellEffectByIdLoc(ATUN_ABILITY_ID, EFFECT_TYPE_TARGET, t) set e = AddSpellEffectByIdLoc(ATUN_ABILITY_ID, EFFECT_TYPE_TARGET, t)
53 call RemoveLocation(t)
54 135 call DestroyEffect(e) call DestroyEffect(e)
55 136 // Assume the victim is dead at this point. // Assume the victim is dead at this point.
56 137 // Killing and exploding the unit is for graphics only here. // Killing and exploding the unit is for graphics only here.
 
... ... function atun_mana_restore_amount_get takes unit caster, unit victim returns rea
58 139 call SetUnitExploded(victim, true) call SetUnitExploded(victim, true)
59 140 call KillUnit(victim) call KillUnit(victim)
60 141 call ShowUnit(victim, false) call ShowUnit(victim, false)
142 call atun_decal_create(t, 12.0)
61 143 endif endif
144 call RemoveLocation(t)
62 145 endif endif
63 146
64 147 return mana return mana
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