Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Poll

See Episode 11, Which contract should we take?

Contract 1, FedCom Extraction Raid
- 4 (100%)
Contract 2, Outworlds Alliance Recon Raid
- 0 (0%)
Contract 3, FedCom Recon Raid #1
- 0 (0%)
Contract 4, FedCom Recon Raid #2
- 0 (0%)
None of the above - wait a month and try again (please post to specify acceptable contract criteria)
- 0 (0%)

Total Members Voted: 4


Pages: 1 ... 19 20 [21] 22 23 ... 40

Author Topic: Let's Play MegaMek (Against the Bot campaign)  (Read 75180 times)

Neonivek

  • Bay Watcher
    • View Profile
Re: Let's Play MegaMek (Against the Bot campaign)
« Reply #300 on: December 04, 2015, 11:33:34 am »

Also Quads don't use internals for Gyros and cannot take Gyro hits. They have more armor then a normal mech, and they can lose a leg and aren't strongly affected by it.

Yup, that is why I put the machine gun and ammo for my design in the leg.  Machine Guns are famous for only doing decent damage when their ammo supply gets hit.

apperantly the newer rules fixed up quads to no longer suck as much. (though I never used anything but the newer rules so I never had to live through the days of Quads stinking)

Side note: DANG IT!!! the mech maker might have the tonnage for turrets wrong.

Edit: it turns out that version of the battletech mech maker is incomplete. It doesn't know how to handle things with adjustable weights like targeting computers.

Now Vehicles though are secretly monsters! due to their incredible low price and the fact that they don't generate any heat. They aren't great when fighting with BV but when fighting with cash >_<

I made a vehicle and for less then 1 million it fields two ER PPCs and has 30 armor on all its internals... it moves SLOW!!! but given I can field a LOT of them...

---

So let me see here... ALL my Mech designs are invalid due to a glitch... so my official mech

SpidersKiss-G2V3

Spoiler (click to show/hide)
« Last Edit: December 04, 2015, 03:07:33 pm by Neonivek »
Logged

Knave

  • Bay Watcher
    • View Profile
Re: Let's Play MegaMek (Against the Bot campaign)
« Reply #301 on: December 04, 2015, 02:57:59 pm »

I probably wouldn't call it 2c, as that designation is usually used by clans when they remake an IS design with clan omni tech.

http://www.sarna.net/wiki/Jenner_IIC
Logged

Neonivek

  • Bay Watcher
    • View Profile
Re: Let's Play MegaMek (Against the Bot campaign)
« Reply #302 on: December 04, 2015, 03:08:17 pm »

Ok fixed

It is now the SpidersKiss-G2V3

As in Generation 2, version 3
Logged

EuchreJack

  • Bay Watcher
  • Lord of Norderland - Lv 20 SKOOKUM ROC
    • View Profile
Re: Let's Play MegaMek (Against the Bot campaign)
« Reply #303 on: December 04, 2015, 11:45:40 pm »

Vehicles are only good on paper but lousy in actual combat.

Neonivek

  • Bay Watcher
    • View Profile
Re: Let's Play MegaMek (Against the Bot campaign)
« Reply #304 on: December 05, 2015, 12:50:53 am »

Vehicles are only good on paper but lousy in actual combat.

BV to BV right?

They have two things going for them
1) Their price: they are extremely cheap. You can field tons of heavily armored, highly armed vehicles... for less then mechs
2) Their specialties: What vehicles do well, they do far better then mechs. NO mech... can outrun a vehicle made to move fast.

But yeah outside of that yeah they are death traps that do not do "Terrain" very well.
Logged

Anvilfolk

  • Bay Watcher
  • Love! <3
    • View Profile
    • Portuguese blacksmithing forum!
Re: Let's Play MegaMek (Against the Bot campaign)
« Reply #305 on: December 05, 2015, 01:08:17 pm »

Hadn't realised there was a crash at some point. Found out what it is... modified rolls can be negative, and I wasn't taking into account that there might've been a - symbol in there ;) Now fixed, finally. Also added a notification for immobile vehicles.

Code: [Select]
import re

with open ("round.txt", "r") as myfile:
    data=myfile.readlines()
   
data = [line.strip('\n').strip('\r').strip('\t') for line in data]
data = list(filter("".__ne__, data))

class Unit:
    def __init__(self, name, faction):
        self.name = name
        self.faction = faction
        self.timesFired = 0
        self.timesFiredHit = 0
        self.timesFiredAt = 0
        self.timesFiredAtHit = 0
        self.damageTaken = 0
        self.damageDealt = 0
       
        self.kick = False
        self.kicked = 0
        self.punch = 0
        self.punched = 0
        self.physTarget = None
        self.physDamage = 0
       
        self.lastPartHit = None
        self.crits = []
        self.destroyedParts = []
       
        self.destroyed = ""
        self.prone = False
        self.immobile = False
   
    def __str__(self):
        return "("+self.faction+") " + self.name
   
    def asList(self):
        l = []
        l.append("("+ self.faction +") " + self.name)
        if self.timesFired > 0:
            l.append("   Fired " + str(self.timesFired) + " times, hit " + str(self.timesFiredHit) + " times for " +str(self.damageDealt)+" damage")
        if self.damageTaken > 0 or self.timesFiredAt > 0:
            l.append("   Fired at " + str(self.timesFiredAt) + " times, hit " + str(self.timesFiredAtHit) + " times for " + str(self.damageTaken) +" damage")
        if self.kick:
            pd = " for " + str(self.physDamage) + " damage" if (self.physDamage > 0) else " and missed!"
            l.append("   Kicked " + str(self.physTarget) + pd)
        if self.punch > 0:
            pd = " " + str(self.punch) +" times for " + str(self.physDamage) + " damage" if (self.physDamage > 0) else " and missed!"
            l.append("   Punched " + str(self.physTarget) + pd)
        if self.punched > 0 or self.kicked > 0:
            l.append("   Was punched " + str(self.punched) + " times and kicked " + str(self.kicked) + " times.")
        if len(self.crits) > 0:
            l.append("   Crits received: " + ", ".join(self.crits))
        if len(self.destroyedParts) > 0:
            l.append("   Destroyed parts: " + ", ".join(self.destroyedParts))
        if self.prone:
            l.append("   PRONE")
        if self.immobile:
            l.append("   IMMOBILE")
        if len(self.destroyed) > 0:
            l.append("   DESTROYED ("+self.destroyed+")")
        return l

def getNextLine():
    global data
    line = data[0]
    data = data[1:]
    return line

faction = "\(([^\)]+?(?: *\(Reinforcements\))?)\)"
unitName = "([^\(]*(?: *\([^\)]+\))?(?: *#\d+)?) " + faction
weaponName = "([a-zA-Z/0-9 ]+)"
   
unitFire = re.compile('Weapons fire for ' + unitName)
unitPhys = re.compile('Physical attacks for ' + unitName)
weaponsFire = re.compile('[ ]*'+weaponName+' at '+unitName+'; needs -?\d+, rolls \d+ : (misses|hits)[ ]*(?:\([^\)]+\))?[ ]*([A-Z]+)?')
missileFire = re.compile('[ ]*'+weaponName+' at '+unitName+'; needs -?\d+, rolls \d+ : (misses|\d+ missile\(s\) hit)')
damageTaken = re.compile('[ ]*'+unitName+' takes (\d+) damage to ([A-Z]+)')
physAttack = re.compile('[ ]*(Kick|Punch)[ ]*(?:\([^\)]+\))? at '+unitName+'; needs -?\d+, rolls \d+ : (misses|hits)[ ]*(?:\([^\)]+\))?[ ]*([A-Z]+)?')
falling = re.compile('[ ]*'+unitName+' falls ')
critical = re.compile('CRITICAL HIT on ([^.]+).')
destroyedParts = re.compile('SECTION DESTROYED')
destroyed = re.compile('\*\*\* '+unitName+' DESTROYED by ([^!]+)! \*\*\*')
transferDamage = re.compile('(\d+) damage transfers to [A-Z]+')
vehicleImmobilised = re.compile('Major damage, vehicle immobile.')


units = dict()

def getUnit(name, faction):
    global units
    if name+faction not in units:
        units[name+faction] = Unit(name, faction)
    return units[name+faction]
   
currentUnit = None
targetUnit = None
physical = False

while len(data) > 0:
    line = getNextLine()
   
    # Check if this is a firing line
    r = unitFire.match(line)
    if r is not None:
        physical = False
        currentUnit = getUnit(r.group(1), r.group(2))
        targetUnit = None
        continue
   
    r = unitPhys.match(line)
    if r is not None:
        physical = True
        currentUnit = getUnit(r.group(1), r.group(2))
        targetUnit = None
        continue
   
    r = weaponsFire.search(line)
    if r is not None:
        currentUnit.timesFired += 1
        targetUnit = getUnit(r.group(2), r.group(3))
        targetUnit.timesFiredAt += 1
        if r.group(4) == "hits":
            currentUnit.timesFiredHit += 1
            targetUnit.timesFiredAtHit += 1
        continue
       
    r = missileFire.search(line)
    if r is not None:
        currentUnit.timesFired += 1
        targetUnit = getUnit(r.group(2), r.group(3))
        targetUnit.timesFiredAt += 1
        if r.group(4) != "misses":
            currentUnit.timesFiredHit += 1
            targetUnit.timesFiredAtHit += 1
        continue
   
    r = physAttack.search(line)
    if r is not None:
        targetUnit = getUnit(r.group(2), r.group(3))
        currentUnit.physTarget = targetUnit
        if r.group(1) == "Kick":
            currentUnit.kick = True
            if r.group(4) == "hits":
                targetUnit.kicked += 1
        elif r.group(1) == "Punch":
            currentUnit.punch += 1
            if r.group(4) == "hits":
                targetUnit.punched += 1
        continue

    r = falling.search(line)
    if r is not None:
        currentUnit = None
        targetUnit = getUnit(r.group(1), r.group(2))
        targetUnit.prone = True
        continue
       
    r = damageTaken.search(line)
    if r is not None:
        targetUnit.damageTaken += int(r.group(3))
        targetUnit.lastPartHit = r.group(4)
        if currentUnit is None:
            continue
        if physical:
            currentUnit.physDamage += int(r.group(3))
        else:
            currentUnit.damageDealt += int(r.group(3))
        continue   
   
    r = transferDamage.search(line)
    if r is not None:
        targetUnit.damageTaken -= int(r.group(1))
        if physical and currentUnit is not None:
            currentUnit.physDamage -= int(r.group(1))
        elif not physical and currentUnit is not None:
            currentUnit.damageDealt -= int(r.group(1))
        continue
   
    r = critical.search(line)
    if r is not None:
        targetUnit.crits.append(r.group(1) + "["+targetUnit.lastPartHit+"]")
        continue
   
    r = destroyedParts.search(line)
    if r is not None:
        targetUnit.destroyedParts.append(targetUnit.lastPartHit)
        continue
       
    r = destroyed.search(line)
    if r is not None:
        unit = getUnit(r.group(1), r.group(2))
        unit.destroyed = r.group(3)
        continue
   
    r = vehicleImmobilised.search(line)
    if r is not None:
        targetUnit.immobile = True
        continue
   
   
factions = {}
def getFaction(name):
    global factions
    if name not in factions:
        factions[name] = {}
    return factions[name]

for unit in units.values():
    f = getFaction(unit.faction)
    f[unit.name] = unit

output = []
   
sortedFactions = sorted(factions.keys())
for factionName in sortedFactions:
    unitList = getFaction(factionName)
    sortedUnitList = sorted(unitList.keys())
    for unitName in sortedUnitList:
        output = output + unitList[unitName].asList() + [""]
       
   
with open ("round2.txt", "w") as myfile:
    myfile.write("\n".join(output))



So, how often do y'all customise your own mechs? I never do that, even though I have tons of ideas of things to do to mechs. Is it a usual thing? Are there associated costs that I'm not considering, or are the parts and a mech tech all you need?

And how do you generally figure out part availability before missions?

Rince Wind

  • Bay Watcher
    • View Profile
Re: Let's Play MegaMek (Against the Bot campaign)
« Reply #306 on: December 05, 2015, 01:27:06 pm »

Customized Mechs get the "hard to maintain" quirk, but you have to add it yourself. A whole custom mech gets the obsolete (year you made it) quirk as well.

I hardly ever do it, I refit them sometimes, to variants that suit my style/needs better. I do customize my Centurions, the stupid rear facing laser gets switched to the front. As it is such a minor chance, I don't even add the neg. quirk.

Logged

EuchreJack

  • Bay Watcher
  • Lord of Norderland - Lv 20 SKOOKUM ROC
    • View Profile
Re: Let's Play MegaMek (Against the Bot campaign)
« Reply #307 on: December 05, 2015, 04:34:38 pm »

Customized Mechs get the "hard to maintain" quirk, but you have to add it yourself. A whole custom mech gets the obsolete (year you made it) quirk as well.

I hardly ever do it, I refit them sometimes, to variants that suit my style/needs better. I do customize my Centurions, the stupid rear facing laser gets switched to the front. As it is such a minor chance, I don't even add the neg. quirk.

You also need to be either a highly ranked mercenary outfit or face a penalty for the more extreme changes, such as Endo Steel.

Cost is also a factor: Customization can cost the same as purchasing a new mech of similar weight.  Its something to when you've filled out your lances and reserves and want them to perform Better.

A relatively simple customization I would suggest whenever Ferro-Fibrous armor becomes available/common is replacing Standard armor with Ferro-Fibrous armor and using the better armor strength to upgrade mech armor protection, add weapons/heat sinks, or some combo.  Armor swapping is fairly simple, as is weapon/heat sink additions.  Swapping Double Heat sinks with standard is also good.

Neonivek

  • Bay Watcher
    • View Profile
Re: Let's Play MegaMek (Against the Bot campaign)
« Reply #308 on: December 05, 2015, 07:42:46 pm »

I usually play a very different campaign then the one shown here where resources are much more rare... so the vast majority of your cash resources are from enemy mechs.

You either customize mechs or fall behind.

But then again the game I was in didn't really have TOO much of a cost involved in it... But experienced personel was required as they could even outright lose the part you were going for.

---

But really the penalties to customization I am hearing is outright silly

The point of Omnimechs is that you can right before a mission completely alter its loadout. Normal mechs need a team of engineers and time.

It was like they were making sweet passionate love to Omnimechs and to make them extra special constantly beat down customization. The usual reason for mech models is just that... they are models from a factory... "Ready built computers" it would be like saying "Why don't people customize their computer?" which is ridiculous because they do.

---

Then again the rules I was under were very... interesting rules >_> there were rules about pasting a 20 pound mechs arm onto a 100 pound mech.

As well what you could salvage was limited as well. Mechs are built so once the head is gone the rest is rather useless. So the only way to take whole enemy mechs was a pilot kill or surrender. If they ejected or if the head was shot out... the mech itself was useless (except for components)
« Last Edit: December 05, 2015, 07:57:50 pm by Neonivek »
Logged

EuchreJack

  • Bay Watcher
  • Lord of Norderland - Lv 20 SKOOKUM ROC
    • View Profile
Re: Let's Play MegaMek (Against the Bot campaign)
« Reply #309 on: December 05, 2015, 10:07:22 pm »

I usually play a very different campaign then the one shown here where resources are much more rare... so the vast majority of your cash resources are from enemy mechs.

You either customize mechs or fall behind.

But then again the game I was in didn't really have TOO much of a cost involved in it... But experienced personel was required as they could even outright lose the part you were going for.

---

But really the penalties to customization I am hearing is outright silly

The point of Omnimechs is that you can right before a mission completely alter its loadout. Normal mechs need a team of engineers and time.

It was like they were making sweet passionate love to Omnimechs and to make them extra special constantly beat down customization. The usual reason for mech models is just that... they are models from a factory... "Ready built computers" it would be like saying "Why don't people customize their computer?" which is ridiculous because they do.

---

Then again the rules I was under were very... interesting rules >_> there were rules about pasting a 20 pound mechs arm onto a 100 pound mech.

As well what you could salvage was limited as well. Mechs are built so once the head is gone the rest is rather useless. So the only way to take whole enemy mechs was a pilot kill or surrender. If they ejected or if the head was shot out... the mech itself was useless (except for components)

I don't understand that last part at all.  All the Mechwarrior stuff that I've ever experienced was like "We can totally just replace the head".

RedKing

  • Bay Watcher
  • hoo hoo motherfucker
    • View Profile
Re: Let's Play MegaMek (Against the Bot campaign)
« Reply #310 on: December 05, 2015, 11:41:49 pm »

Yeah, decapitation attacks are the preferred means of enforcing an enemy pilot's...compliance.

Been running my own campaign on the side, and used the FM: Mercenaries rules for unit creation. Which allowed me a couple of starting characters with special advantages.

One of my rolled characters was a 3/2 Assault pilot with Melee Master and Melee Expert. I then put him in a bog-standard 3025-era Charger (CGR-1A1).

He proceeded to get into a special mission where two allied pilots turn traitor and he has to fight them off solo. The two traitors were both in a Cyclops (one a -10Z and the other an upgraded -11C). Thankfully the map had a small village in the middle. He proceeded to play hide and seek with the two traitors until he got the iniative advantage, then raced out and kicked one. The two advantages mean that he gets a -1 to melee and charge attacks, and can execute DOUBLE melee attacks (2 kicks per round or up to 4 punches). He double-kicked the right leg of the Cyclops and down it went. The other one mauled him pretty good, and legged him the next round. But made the mistake of closing to point-blank range to do so. My pilot managed to stand back up (on one leg) and batter the Cyclops with four punches, knocking out the AC/20. At that point, the other Cyclops said "Fuck this" and withdrew. Sadly, I couldn't chase him down since I was hopping on one leg, but I did manage to turn around and focus all five small lasers on the prone (and unconscious) Cyclops, turning its pilot into a smoking piece of Mech jerky and snagging me a mostly intact Cyclops.

Since then, he's made his home in my Recon lance. There's been more than a couple of missions where he's charged an opposing light mech and literally blown it to scrap just from the charge. I've noticed that even the AI seems to give him a wide berth now.  :D
Logged

Remember, knowledge is power. The power to make other people feel stupid.
Quote from: Neil DeGrasse Tyson
Science is like an inoculation against charlatans who would have you believe whatever it is they tell you.

Rince Wind

  • Bay Watcher
    • View Profile
Re: Let's Play MegaMek (Against the Bot campaign)
« Reply #311 on: December 06, 2015, 06:22:43 am »

Now this was bad...
Spoiler (click to show/hide)
Logged

Neonivek

  • Bay Watcher
    • View Profile
Re: Let's Play MegaMek (Against the Bot campaign)
« Reply #312 on: December 06, 2015, 06:54:43 am »

I don't understand that last part at all.  All the Mechwarrior stuff that I've ever experienced was like "We can totally just replace the head".

Well you could... but it usually wasn't worth it. Better to scrap the mech for parts at that point.

Though we did end up beating an Atlas because a single pilot hit knocked the pilot out... at which point the GM didn't know what to do because we had a ridiculous amount of cash.
« Last Edit: December 06, 2015, 06:57:27 am by Neonivek »
Logged

Proudnerd

  • Bay Watcher
  • [LIKES_FIGHTING] [CAFFEINE _DEPENDANT]
    • View Profile
    • My writing profile
Re: Let's Play MegaMek (Against the Bot campaign)
« Reply #313 on: December 06, 2015, 02:41:49 pm »

Hey ive never heard of this game before and I'm still reading the opening posts so i don't know whats going on yet but is there a way i can play as an infantryman? It was mentioned that infantry, tanks and etc are support. It would be pretty funny and tense when massive death machines are blasting each other to be a guy with a rifle and a LAW (or 3040 versions, as said dont know this game) trying to stay alive on foot while pumping LAW rockets into mech heads. If not let me know if i can play and ill write up a bio for a mechpilot. If i can be a solider ill write up one suitable for a rifleman.

Playing as infantry makes me think of what it must be like to be part of the Planetary defense force in warhammer. Fodder for the fodder.
Logged
"Oi Urdim! Monom just died, can ye go fetch his old hand from the pile o' severed limbs?"
"Eh how am I supposed to know which one's his?"
"I dunno, just grab the one that stinks the least and throw it in."

Hanzoku

  • Bay Watcher
    • View Profile
Re: Let's Play MegaMek (Against the Bot campaign)
« Reply #314 on: December 06, 2015, 04:14:58 pm »

Sure, though it will be a while until I get enough soldiers in the weekly personnel rolls to create an infantry unit, and you're likely to die quickly as the AI tends to focus on infantry to the exclusion of more dangerous prey.
Logged
Pages: 1 ... 19 20 [21] 22 23 ... 40