SUBSIM Radio Room Forums



SUBSIM: The Web's #1 resource for all submarine & naval simulations since 1997

Go Back   SUBSIM Radio Room Forums > Modern-Era Subsims > Dangerous Waters > DW Mod Workshop
Forget password? Reset here

Reply
 
Thread Tools Search this Thread Display Modes
Old 08-08-06, 01:32 PM   #1
LoBlo
Subsim Diehard
 
Join Date: May 2006
Location: Texas!
Posts: 971
Downloads: 78
Uploads: 3
Default Randomizing torpedo damage

I've taken the suggestion of kage to heart ( http://www.subsim.com/radioroom/showthread.php?t=96322 ) and have been messing with the torphoming doctrine to try to randomize torp damage a bit. For far it works pretty good.

Here's how it works. In the torphoming doctrine, the torp is given a random "DetonationRange" between 0 and 100 meters at launch. The torp will now detonate at a random range from the target, sometimes still within the hull for full damage (if the detonation range is small it will still be inside the target hull), and sometimes right outside the hull for less damage (100meters from the centerline of the ship is most often just outside the hull form). The end result is that the amount of damage to the ship is more random and unpredictable sometimes full damage sometimes a bit less. The hit the ship will take can vary by a small percentage points.

If anyone would like to test it, here's a example of the changes merged with Luftwolf and Amizuars stellar torphoming doctrine. (assuming its ok with them).

Code:
 
; $Header: TorpHoming.txt   Thu Jul 24 09:26:21 EDT 2003   mike $
; $Revision: 2 $
; $Copyrt1: Copyright (c) 2003, Sonalysts, Inc.  All rights reserved. $
;
; torpedos not detonating on CMs (with exeption of towed CM) mod by Amizaur
;
; second version, game crashing fixed by breaking one big condition into two subconditions
; modded by LoBlo to produce more variation in explosive range Aug 8th 2006
var DetonateRange
IF INIT THEN {
 DetonateRange = rnd 100
 } ENDIF
IF Not LostTrack THEN {
 IF GetEntVar "Enabled" THEN {
  IF ownspd < ( maxSpd * 1.5 ) THEN {
   IF ( TgtRng < 30 ) THEN {
    IF ( TgtClass $= "Weap" ) AND NOT ( TargetName $= "Towed Decoy" ) THEN {
      DebugOut "TorpHoming dropping CM now!"
      Drop
    } ELSE {
     SetPriority 252
     TerminalHome
    } ENDIF
   } ELSE {
    SetPriority 252
    TerminalHome
   } ENDIF
 
   IF ( TgtRng < DetonateRange ) AND NOT ( TargetName $= "Towed Decoy" ) AND NOT ( TgtClass $= "Weap" ) THEN {
    Detonate
   } ENDIF
 
  } ENDIF
 } ENDIF
} ENDIF
So for example a Oscar with an Armor rating of 400 hit by a mk48 with a weapon rating of 400 with sink with one hit about 30% of the time. The other 70% of the time it will be drastically crippled (with 85-95% damage) but will still be afloat. If the chance of sinking needs to be increased the ship armor rating can be reduced to 350 or 360. The same methods can be used for the Typhoon, surface ships, or any other platform. Sometimes a Mk54 will sink a SW in one hit. Most of the times it won't.

Unfortunatlely there is a minor bug already in that extremely large platforms like supercarriers and supertankers will almost always take full damage like previously because their hulls are so large that the detonation range will still be inside the hull like always. Expanding the detonationrange range a bit can rectify this but the result is that on smaller ships the torp hits are way outside their hull and looks unrealistic and a little cheap. Giving a seperate detonation range to a supership is one way to fix this problem and something that can be experimented on.

Needs testing. Please give feedback.
__________________
"Seek not to offend or annoy... only to speak the truth"-a wise man

Last edited by LoBlo; 08-08-06 at 04:47 PM.
LoBlo is offline   Reply With Quote
Old 10-03-06, 05:18 PM   #2
weasel
Swabbie
 
Join Date: Aug 2006
Posts: 7
Downloads: 18
Uploads: 0
Default

I did some playing around with your idea of variable detonation range and tried to apply it to missiles. Apparently the key file here seems to be the terminal_home file.
I put the DetRng code right at the beginning and so far it seems to work.

Script looks as follows:

Code:
var DetRng
IF INIT THEN {
 DetRng = rnd 100
 } ENDIF
 
IF ( TgtRng < DetRng ) THEN {
    Detonate
   } ENDIF
IF NOT INIT THEN {
 ; Home
 SETPRIORITY 252
 SETPERSIST 0 ; don't time out
 TERMINALHOME
} ELSE {
 DEBUGOUT OwnName
 DEBUGOUT " Acquired "
 DEBUGOUT TargetName
} ENDIF
I set up a test scenario with OHPs as targets. Set Harpoon damage to 442 and OHP armor to 450.
Test run with 20 Harpoons each fired at 1 OHP:

- 2x 100% destroyed
- 10x 98% damage
- 8x ranging from 43%-69% damage

It's intersting that the missiles managed to sink the ship 2 times, even though the damage value was less than the ship's armor (?).
I also did a quick test with some CV-targets and as far as I've seen the script suffers from the same 'bug' as your torpedo script, when hitting large targets.

However, I think random damage is mostly useful to simluate damage on targets that could theoretically be killed by a single missile/torpedo and since big targets do require several missiles to kill them anyway, I consider this not a major issue.

Last edited by weasel; 10-03-06 at 05:22 PM.
weasel is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -5. The time now is 09:33 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © 1995- 2024 Subsim®
"Subsim" is a registered trademark, all rights reserved.