diff --git a/game/modules/tome/data/damage_types.lua b/game/modules/tome/data/damage_types.lua index ae94497a293cb0a433c979a92a1c0f9262640192..310fd42177f671b05e0b37ff4cb37188df0e6c27 100644 --- a/game/modules/tome/data/damage_types.lua +++ b/game/modules/tome/data/damage_types.lua @@ -68,8 +68,8 @@ setDefaultProjector(function(src, x, y, type, dam, tmp, no_martyr) print("[PROJECTOR] after necrotic increase dam", dam) end - if target.isTalentActive and target:isTalentActive(target.T_GESTURE_OF_GUARDING) then - local t = target:getTalentFromId(target.T_GESTURE_OF_GUARDING) + if src.isTalentActive and src:isTalentActive(target.T_GESTURE_OF_GUARDING) then + local t = src:getTalentFromId(target.T_GESTURE_OF_GUARDING) dam = t.on_damageInflicted(target, t, type, dam, src) end diff --git a/game/modules/tome/data/talents/cursed/gestures.lua b/game/modules/tome/data/talents/cursed/gestures.lua index e9d000d65b5a670420874e52fd5fc8538e5eea95..28422845366fec2d955496795934059ec9791702 100644 --- a/game/modules/tome/data/talents/cursed/gestures.lua +++ b/game/modules/tome/data/talents/cursed/gestures.lua @@ -40,13 +40,13 @@ newTalent{ game.logPlayer(self, "You do not have a free hand to use Gesture of Pain.") return false end - + return true end, attack = function(self, t, target) - local freeHands = self:getFreeHands() + local freeHands = self:getFreeHands() local hit = false - + local mindpower = self:combatMindpower() local baseDamage = t.getBaseDamage(self, t) if self:checkHit(mindpower, target:combatMentalResist()) then @@ -59,7 +59,7 @@ newTalent{ game.logSeen(self, "%s resists the Gesture of Pain.", target.name:capitalize()) game:playSoundNear(self, "actions/melee_miss") end - + if not target.dead and freeHands > 1 and self.hate >= 0.1 and rng.chance(t.getSecondAttackChance(self, t)) then if self:checkHit(mindpower, target:combatMentalResist()) then local damage = baseDamage * rng.float(0.5, 1) @@ -72,11 +72,11 @@ newTalent{ game:playSoundNear(self, "actions/melee_miss") end end - + if hit then game.level.map:particleEmitter(target.x, target.y, 1, "melee_attack", {color=colors.VIOLET}) end - + return self:combatSpeed(), hit end, activate = function(self, t) @@ -102,7 +102,7 @@ newTalent{ getMindpowerChange = function(self, t, freeHands) freeHands = freeHands or self:getFreeHands() if freeHands == 0 then return 0 end - + local change = math.pow(self:getTalentLevel(t), 0.7) * 4 if freeHands > 1 then change = change * 1.4 end return math.floor(change) @@ -123,7 +123,7 @@ newTalent{ getMindCritChange = function(self, t, freeHands) freeHands = freeHands or self:getFreeHands() if freeHands == 0 then return 0 end - + local change = math.pow(self:getTalentLevel(t), 0.5) * 2 if freeHands > 1 then change = change * 1.4 end return change @@ -145,16 +145,18 @@ newTalent{ getDamageResistChange = function(self, t, distance, freeHands) freeHands = freeHands or self:getFreeHands() if freeHands == 0 then return 0 end - + local change = math.pow(self:getTalentLevel(t), 0.5) * 1.15 if freeHands > 1 then change = change * 1.4 end + print("===dec by", change,change * math.min(7, distance)) return change * math.min(7, distance) end, getIncDamageChange = function(self, t, distance) local change = -(2 + math.pow(self:getTalentLevel(t), 0.5) * 0.8) + print("===inc by", change,change * math.min(7, distance)) return change * math.min(7, distance) end, - on_damageRecieved = function(self, t, type, dam, src) + on_damageReceived = function(self, t, type, dam, src) if src and src.x and src.y and (self.x ~= src.x or self.y ~= src.y) and self:hasLOS(src.x, src.y) then local distance = core.fov.distance(src.x, src.y, self.x, self.y) dam = dam * (100 - t.getDamageResistChange(self, t, distance) / 100) @@ -168,6 +170,12 @@ newTalent{ end return dam end, + activate = function(self, t) + return {} + end, + deactivate = function(self, t, p) + return true + end, info = function(self, t) local damageResistChange1 = t.getDamageResistChange(self, t, 1, 1) local damageResistChangeMax1 = t.getDamageResistChange(self, t, 1000, 1) diff --git a/src/physfs/archivers/bind_physfs.c b/src/physfs/archivers/bind_physfs.c index 15156e4783b9428a31f830647e6a7f6275c74e0f..19d9463a2643744c9b6dd64cbffcac2180b2bad5 100644 --- a/src/physfs/archivers/bind_physfs.c +++ b/src/physfs/archivers/bind_physfs.c @@ -26,6 +26,11 @@ static char *__BIND_PHYSFS_toDependent(dvoid *opaque, const char *name, const ch else { char *f = __PHYSFS_platformCvtToDependent((char *)opaque, name, NULL); + + // FIXME: I'm a very very dirty hack; __PHYSFS_platformCvtToDependent is not really meant to return a platform independant path, so why turn it into one (for poor windows users) + char *c = f; + while (*c) { if (*c == '\\') *c = '/'; c++; } + return f; } }