Example #1
0
    def calc(self, d=1):
        d = round(d)

        try:
            out = "--- {0} damage ---\nHELMET: {1}, VEST: {2}, RANGE: {3}m\n".format(
                self.target_name.replace("-", " "),
                self.helmet.capitalize()
                if not int(self.helmet[-1:]) == 0 else self.__na,
                self.vest.capitalize()
                if not int(self.helmet[-1:]) == 0 else self.__na, d)
        except AttributeError:
            print("Weapon is not found.")
            sys.exit(-1)

        d = self.__distance(d)
        for name, member in list(
                self.target.value.keys())[0].__members__.items():
            try:
                if name in self.__no_armor:
                    damage = list(
                        self.target.value.values())[0] * d * member.value
                else:
                    if name in self.__head:
                        damage = list(self.target.value.values()
                                      )[0] * d * member.value * ARMOR[
                                          self.helmet.upper()].value
                    else:
                        damage = list(self.target.value.values()
                                      )[0] * d * member.value * ARMOR[
                                          self.vest.upper()].value

                if damage < 0.05:
                    damage = self.__na
                else:
                    damage = deci(str(damage)).quantize(
                        deci("0.1"), rounding=ROUND_HALF_DOWN)
                out += "\n{0}: {1}({2})".format(name, damage,
                                                self.__tokill(damage))
            except KeyError:
                print("Armor level is injustice.")
                sys.exit(-1)

        print(out)
def convert(fromUnit, toUnit, value):
#converts a given value to a different unit types value
	fU = fromUnit[:3].lower()
	tU = toUnit[:3].lower()
	value = deci(value)
	if fU == tU:
		return float(value)
	elif tU in F1[fU]:
		conversion = ((value + F1[fU][tU][0]) * (F1[fU][tU][1]) + (F1[fU][tU][2]))
		return round(float(conversion), 3)
	else:
		raise ConversionNotPossible
Example #3
0
 def __tokill(self, dmg):
     if type(dmg) is str:
         return self.__na
     return deci(str(100 / dmg)).quantize(deci("0"), rounding=ROUND_CEILING)
Example #4
0
def convertCelsiusToKelvin(degrees):
#converts celsius to kelvin
	degrees = str(degrees)
	convert = (deci(degrees) + deci('273.15'))
	return (float(convert))
Example #5
0
def convertKelvinToFahrenheit(degrees):
#converts kelvin to fahrenheit
	degrees = str(degrees)
	convert = (((deci(degrees) * 9) / deci('5')) - deci('459.67'))
	return (float(convert))
Example #6
0
def convertKelvinToCelsius(degrees):
#converts kelvin to celsius
	degrees = str(degrees)
	convert = (deci(degrees) - deci('273.15'))
	return (float(convert))
Example #7
0
def convertFahrenheitToKelvin(degrees):
#converts fahrenheit to kelvin
	degrees = str(degrees)
	convert = ((deci(degrees) + deci('459.67')) * 5 / deci('9'))
	return (float(convert))
Example #8
0
def convertFahrenheitToCelsius(degrees):
#converts fahrenheit to celsius
	degrees = str(degrees)
	convert = ((deci(degrees) - 32) * 5) / deci('9')
	return (float(convert))
Example #9
0
def convertCelsiusToFahrenheit(degrees):
#converts celsius to fahrenheit
	degrees = str(degrees)
	convert = (deci(degrees) / deci('5') * 9) + 32
	return (float(convert))
#! /usr/bin/env python3

#IS211 Assignment 6 - refactored conversions

import unittest
from decimal import Decimal as deci

class ConversionNotPossible(Exception):
#class for conversion, not possible
	pass

KCDIF = deci('273.15')
KFDIF = deci('459.67')
NDIVF = deci('9') / 5
FDIVN = deci('5') / 9

F1 = {'cel': {'kel': (KCDIF, 1, 0), 'fah': (0, NDIVF, 32)},
	'kel': {'cel': (-KCDIF, 1, 0), 'fah': (0, NDIVF, -KFDIF)},
	'fah': {'cel': (-32, FDIVN, 0), 'kel': (KDIF, FDIVN, 0)},
	'mil': {'yar': (0, deci(1760), 0), 'met': (0, deci(1609.34), 0)},
	'yar': {'mil': (0, deci(.00056818), 0), 'met': (0, deci(.9144), 0)},
	'met': {'mil': (0, deci(.00062137), 0), 'yar': (0, deci(1.09361), 0)}
	}

def convert(fromUnit, toUnit, value):
#converts a given value to a different unit types value
	fU = fromUnit[:3].lower()
	tU = toUnit[:3].lower()
	value = deci(value)
	if fU == tU:
		return float(value)