X-Git-Url: http://deadsoftware.ru/gitweb?p=d2df-sdl.git;a=blobdiff_plain;f=src%2Fgame%2Fg_monsters.pas;h=83714cbdd0ec333d5f9a581bfd35c78aae655fd5;hp=12488d6e1c69aedad84bdaf0207800bf6a479347;hb=8bc91b0c803ac0934ca9e32ca05d9294d7b2a913;hpb=281969a1bea9afbf36babebcf9208549929a96f4 diff --git a/src/game/g_monsters.pas b/src/game/g_monsters.pas index 12488d6..83714cb 100644 --- a/src/game/g_monsters.pas +++ b/src/game/g_monsters.pas @@ -2469,6 +2469,14 @@ begin st := g_Obj_Move(@FObj, fall, True, True); positionChanged(); // this updates spatial accelerators +// Åñëè ãîðèì - ïîäæèãàåì äðóãèõ ìîíñòðîâ: + if FFireTime > 0 then + for a := 0 to High(gMonsters) do + if (gMonsters[a] <> nil) and (gMonsters[a].alive) and + (gMonsters[a].FUID <> FUID) and + g_Obj_Collide(@FObj, @gMonsters[a].Obj) then + gMonsters[a].CatchFire(FFireAttacker); + // Âûëåòåë çà êàðòó - óäàëÿåì è çàïóñêàåì òðèããåðû: if WordBool(st and MOVE_FALLOUT) or (FObj.X < -1000) or (FObj.X > gMapInfo.Width+1000) or (FObj.Y < -1000) then @@ -4638,6 +4646,8 @@ end; procedure TMonster.CatchFire(Attacker: Word); begin + if FFireTime <= 0 then + g_Sound_PlayExAt('SOUND_IGNITE', FObj.X, FObj.Y); FFireTime := 100; FFireAttacker := Attacker; if g_Game_IsNet and g_Game_IsServer then MH_SEND_MonsterState(FUID);